Laden...

Fortschrittsbalken im 2. Dialog

Letzter Beitrag vor 15 Jahren 8 Posts 2.359 Views
Fortschrittsbalken im 2. Dialog

Hallo zusammen,

Komme mit meinem C# Wissen nicht weiter 🤔 und deswegen brauche ich noch einmal eure Hilfe,

Arbeite gerade in einem Projekt indem Dateien hin und her kopiert werden.
Alles schon und gut, aber ich möchte gerne einen Fortschrittsbalken erzeugen indem der Anweder anschauen kann wie lange hat er noch zu warten hat bis die Dateien kopiert werden. Damit habe ich auch kein prolem,

Mein Problem ist,

  1. während der "Main" Program die Dateien kopiert, soll der Fortschrittsbalken, (Der sich in einem 2. Dialog befindet) aktualisieren.

  2. Ich weiss nicht wonach ich suchen soll, habt ihr Tipps oder Schlüsselwörter wo ich nach suchen kann.

MFG

LeChimp

Ahhh wer such der findet...

könnte es mit einem "backgroundWorker" möglich?

MFG
LeChimp

Hi,

also so ganz verstehe ich dich nicht ^^
Du schreibst das du kein Problem damit hast das der Anwender sehen kann wie lange er noch warten muss, aber in Punkt zwei steht, du weißt nicht wie man es zum aktualisieren bringt.

Alsoooo.....vielleicht kann ich nen kleinen Beitrag leisten.

Ich weiß leider nicht wie man abfragt wie weit eine Datei schon kopiert.

Jedenfalls, wenn du mit 2. Dialog ne zweite Form meinst dann...
hast du ja in der zweiten Form die Statusleiste. Da muss man den
maximalen Wert festlegen (mit Statusleiste1.max = eineVariable)(.max oder .maxvalue oder so). Dann würde ich sagen das in Form1 stehen muss "Form2 myForm2 = new Form2" und die void Methode der Statusleiste auf public. Dann kannst du diese Leiste in der Form1 ansprechen. Eventuell vielleicht noch mit einem Timer.

Vielleicht hilft das ^^

Du kannst vielleicht nochmal genauer beschreiben was Sache ist. Dann bin ich sogar bereit nen Beispielprogramm zu erstellen (so lange es in meiner Macht steht). Ich habe Statusleisten erfolgreich beim Kopieren von Datenbankwerten verwendet. Müsstest theoretisch nur die Werte von wo anders bekommen. 😃

Hallo banax,

vielen Dank für die schnelle Antwort.

Was ich erzeugen möchte ist, während mein "Main" Prog. die dateien kopiert, soll ein Fortschrittsbalken (Der sich im 2. Dialog, Fenster, Form etc. befindet) den Verlauf anzeigen.

D.h. wie kann ich die Dialoge Parallel laufen lassen. Der einer Kopiert der andere zeigt es an.

nochmals, Danke

Sieh dir mal die ProgressBar-Klasse an. Beim Aufruf der PerformStep-Methode erhöht sich die angezeigte Stufe der Fortschrittsanzeige.

Hallo rechner,

mein Problem ist nicht der Fortschrittsbalken an sich, sondern die Dialoge Prallel laufen zu lassen!

MF
LeChimp

Du musst den Kopiervorgang in der Tat in einen eigenen Thread auslagern, das kannst du mit dem BackgroundWorker tun. Der Backgroundworker bietet dir auch dieses: MSDN: BackgroundWorker.ProgressChanged Event Event an um deine GUI zu aktualisieren.

Nochmal alles zusammen:

  1. Neue Form erstellen
  2. BackgroundWorker drauf
  3. Im DoWork des BackgroundWorkers das kopieren erledigen
  4. Während dem Kopieren ReportProgress: MSDN: BackgroundWorker.ReportProgress Method aufrufen
  5. Im handler des ProgressChanged-Event deine Progressbar auf der Form aktualisieren

Zwei Forms: [FAQ] Kommunikation von 2 Forms
Und evtl. das hier (falls du ein bisschen mehr machen möchtest als dich auf das ProgressChanged-Event stützen): [FAQ] Controls von Thread aktualisieren lassen (Control.Invoke)

PERFEKT JUNGS !!!

damit komme ich schon weiter!!!
Vielen Dank für die Hilfe !

MFG
LeChimp