Wyswietlanie w texboxie zmian

0

Witam,
co trzeba zrobić, aby w texboxie pojawiały się aktualne wartości przy każdej zmianie w pętli np.

  for (int i = 0; i < 1000000000; i++)
            {
                if (i == t)
                {
                    texboxtest.Text = i.ToString();                   
                    t = t + 1000;
                }              
            }
 
0
                if (i == t)
                {
                    texboxtest.Text = i.ToString();                   
                    Application.DoEvents();
                    t = t + 1000;
                }

ale to zły pomysł, bo znacznie spowolni działanie programu. na dodatek trzeba uważać, żeby nie dopuścić do zagnieżdżonego wywołania bieżącej metody, bo się dziwne cuda będą działy.

poza tym ten kod nie ma sensu. jeśli chcesz TextBoxa co chwilę zmieniającego wartość, to użyj timera.

0

Kod ten jest tylko przykładowy,
a w jaki sposób można przerwać działanie pętli np przy naciśnięciu buttona ??

0

Nie rozumiesz jak to działa. Spróbuję w dużym skrócie to przybliżyć. Mamy GUI klikamy na Buttona i zostaje wywołane zdarzenie a w nim pętla. Pętla się wykonuje, a w tym czasie GUI jakby czeka na zakończenie zdarzenia, a uściślając wątek jest tą pętlą zajęty. W czasie jej wykonywania nie zobaczysz ani zmian na formie, ani nic nie naciśniesz. Rozwiązaniem jest umieścić przeliczenia w innym wątku.

0
juli126 napisał(a)

a w jaki sposób można przerwać działanie pętli np przy naciśnięciu buttona ??

Prościej będzie wyłączyć Timer.

0

Albo użyć BackgroundWorkera.

1 użytkowników online, w tym zalogowanych: 0, gości: 1