VS 2013: C#-Frage zur Textbox

Gast #4159448
Lesenswert?

In einer while-Schleife, die pro Durchlauf 200 ms dauert, aktualisiere 
ich zwei Textboxen, um mir die Anzahl der fehlerhaften bzw. korrekt 
übertragenen Datensätze anzeigen zu lassen.

Erwartet habe ich, dass die Zahlen von 1 bis 100 durchlaufen. Bekomme 
aber Zahlen, die in zwei, drei größeren Abständen (19, 72, 100) 
angezeigt werden.

Woran liegt das? Was muss ich ändern?

1
                ... 
2
                textBoxACK.Text = Convert.ToString(ACKcounter);
3
                textBoxNAK.Text = Convert.ToString(NAKcounter);
4
                ...
Gast #4159465
Lesenswert?

Schon erledigt. Es funktioniert. Danke Thomas.

[code]
                textBoxACK.Text = Convert.ToString(ACKcounter);
                textBoxACK.Refresh();
                textBoxNAK.Text = Convert.ToString(NAKcounter);
                textBoxNAK.Refresh();
[/code
Gast #4160424
Lesenswert?

Am einfachsten ist es wenn du das mit einem Timer löst, der gestartet 
wird und nicht gestoppt wird. Wenn die 200 ms abgelaufen sind kannst du 
über das Tick-Event eine Funktion aufrufen lassen, die den Text deiner 
Textbox bzw. deines Labels ändert.
Und lass das Refresh() weg! Dadurch erhälst du verschiedenen Zeiten in 
deiner Ausgabe.
Gast #4160436
Lesenswert?

Die Zeit deiner while-Schleife ergibt sich durch 200ms warten + Zeit für 
das Refresh. Bei dem Timer natürlich die while-Schleife weglassen. 
Dadurch, dass du den Timer nie stoppst erhältst du automatisch eine 
Endlosschleife der Tick-Funktion. Falls du nur ein bestimmte Anzahl an 
Durchläufen haben willst musst den Timer unter einer Bedingung (am 
besten in der Tick-Funktion)  stoppen (und reseten). Dafür machst du den 
Timer und den Zähler global.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren