Laden...

toolStripStatusLabel1.Text wird nicht mehr angezeigt

Erstellt von steschu vor 14 Jahren Letzter Beitrag vor 14 Jahren 964 Views
steschu Themenstarter:in
24 Beiträge seit 2009
vor 14 Jahren
toolStripStatusLabel1.Text wird nicht mehr angezeigt

Hallo,

In einem MenuItem_Click Event Handler lasse ich in einer for each-Schleife Inhalte aus Dateien lesen und weiterverarbeiten. In der Statusleiste soll die gerade bearbeitete Datei angezeigt werden in einem toolStripStatusLabel, das in einem statusStrip liegt.

toolStripStatusLabel1.Text = theFileName;

Nach der for each-Schleife soll noch das Ende angezeigt werden:

toolStripStatusLabel1.Text = "fertig!";

Während des Schleifendurchlaufs pasiert gar nichts, das toolStripStatusLabel bleibt leer, danach wird aber "fertig!" angezeigt. An was könnte das liegen - muss man einen Refresh o.ä. ausführen?

Das Unverständliche für mich: Das hat alles schonmal funktioniert - dann habe ich den Code zum Weiterverarbeiten der Dateinhalte aus der Schleife in andere Klassen ausgelagert und auf einmal bleibt das toolStripStatusLabel leer?!

Grüße, Stephan

H
222 Beiträge seit 2010
vor 14 Jahren

lass mich raten, dass "fertig" setzt du dann wieder im eventhandler?
klar dass das nicht funktioniert... wundert mich nur das du da keinen fehler bekommst...

schau doch mal hier:

[FAQ] Controls von Thread aktualisieren lassen (Control.Invoke/Dispatcher.Invoke)

Die Welt hat genug für jedermanns Bedürfnisse, aber nicht für jedermanns Gier.

49.485 Beiträge seit 2005
vor 14 Jahren

Hallo steschu,

beziehungsweise zunächst in [FAQ] Warum blockiert mein GUI?

Das hat alles schonmal funktioniert

Fällt mir schwer zu glauben. Aber selbst wenn, wäre das keine gute Lösung.

herbivore

steschu Themenstarter:in
24 Beiträge seit 2009
vor 14 Jahren

Die Änderung des Texts finden alle im Event Handler statt. Die Zuweisung des Dateinamens findet am Anfang der for each Schleife statt, danach weiter in der Schleife wird eine Klasse instanziert, mit der dann die Berechnungen stattfinden. Nach Beenden der Schleife kommt die Zuweisung "fertig!", also außerhalb.

Ich schau mir die Links einmal an. Habe schon irgendwas von Threads und so gelesen. Bin noch relativer Anfänger, von daher ist das Neuland für mich.

steschu Themenstarter:in
24 Beiträge seit 2009
vor 14 Jahren

Es funktioniert: Den Methodenaufruf, in der die Berechnungen stattfinden, in einen eigenen Thread ausgelagert und per Invoke die Methode aufgerufen, die die Status-Bar aktualisiert.