While içinde Form Değişkenlerini Değiştirmek

Bu yazımda C# form uygulaması içerisinde while döngüsü kullandığımızda döngünün içinde form öğelerinin değerlerini nasıl değiştireceğimizi anlatacağım. Aslında işi yapan sadece Application.DoEvents(); kodunu eklemek…
Aradaki farkı görünce ne demek istediğimi daha iyi anlayacaksınız:

Aşağıdaki kodla Button1′e basıldığında label1′in text’ini her döngüye girişte elde ettiğimiz değeri gösterecek şekilde değiştiriyoruz ama çalıştırırsanız; işe yaramadığını, programın ‘Yanıt Vermiyor’ durumuna geçtiğini görürsünüz.

private void button1_Click(object sender, EventArgs e)
{
button1.Enabled = false;
int deger = 0;
while(true)
{
deger++;
label1.Text = "Deger: "+deger;
}
}

Yapmanız gereken tek şey

label1.Text  =  "Deger: "+deger;

satırından sonra;

Application.DoEvents();

kodunu eklemek…

Böyle bir durum neden oluşuyor derseniz;  form uygulamasının kullanıcı arayüzünü döngüden çıktıktan sonra güncellemesi ile ilgili…

Küçük ama faydalı bir paylaşım yaptığımı düşünerek iyi günler diliyorum efendim :)


About this entry