VB.NET: Aktualisierung eines Formulars

Hola Kolegas,

ich muss desöfteren sehr große Dateien mit VB bearbeiten und verwende zur Statusanzeige ein Label - Steuerelement, das die aktuelle Zeilenposition in der Textdatei anzeigt.

Unter VB.Net nun funktioniert das ganze nur für ein paar tausend Zeilen. Danach schaltet die Aktualisierung meines Labels einfach ab. Das Programm läuft ohne Probleme weiter, auch das Label wird mit label1.text „Zeile Nummer“ & zeilenummer weiter gefüllt. Nur am Form passiert nichts.

Kann mir jemand helfen ?

Gruß Tom

Hola Kolegas,

Hallo,

…Danach schaltet die Aktualisierung meines
Labels einfach ab…
… auch das Label wird mit label1.text „Zeile Nummer“ &
zeilenummer weiter gefüllt

Verstehe ich nicht ganz, was denn nu?

Nur am Form passiert nichts.

Befindet sich das Label denn nicht in der Form?

Gruß
Alexander

:Verstehe ich nicht ganz, was denn nu?
Ich verwende das Label als Statuslabel in welcher
Zeile sich das Programm derzeit befindet. Jedesmal wenn
eine Zeile in der Textdatei bearbeitet wurde, wird der
Inhalt des Labels um +1 erhöht. Das funzt ca. 4000 mal
(geht ziemlich schnell). Irgendwann steht die Anzeige in
der Form obwohl im Code der Inhalt des Labels weiter hochgezählt wird.

Nur am Form passiert nichts.

Befindet sich das Label denn nicht in der Form?

Das Label befindet auf der Form

Gruß
Alexander

:Verstehe ich nicht ganz, was denn nu?
Ich verwende das Label als Statuslabel in welcher
Zeile sich das Programm derzeit befindet. Jedesmal wenn
eine Zeile in der Textdatei bearbeitet wurde, wird der
Inhalt des Labels um +1 erhöht. Das funzt ca. 4000 mal
(geht ziemlich schnell). Irgendwann steht die Anzeige in
der Form obwohl im Code der Inhalt des Labels weiter
hochgezählt wird.

Könntest du mir den Codeabschnitt posten? Bei mir funktioniert das ohne Probleme bis 400000 (und wahrscheinlich höher). Woher weißt du, dass der Inhalt des Labels (unter der Oberfläche) weiter hochgezählt wird? Schonmal versucht, explizit Label.Invalidate() aufzurufen, um die Anzeige des Labels zu aktualisieren?

Mir ist noch etwas eingefallen:

Ich glaube, du zählst das Label.Text um 1 hoch. Dabei finden implizite Typkonvertierungen statt, die vielleicht nicht ganz funktionieren. Lasse eine Integer-Variable hochlaufen und schreibe deren Wert in das Label:

Set i as Integer

i = i + 1
myLabel.Text = i.ToString()

hallo

Vermutlich liegt es daran, dass nach einer weile das form keine zeit mehr hat das label korrekt aufzubauen.
Versuch mal nach dem setzen im label folgendes:

System.Windows.Forms.Application.DoEvents

gruss
giuseppe

gsharp.blogspot.com

Vielen Dank !!

Hab nun all Eure Tipps eingebaut. Und jetzt funzt es !!!

Muchas gracias !!

Saludos

Tom

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]