Windows formda geri sayım sayacı

Windows formda timer kullanımına örnek olarak basit bir geri sayım sayacı örneği ile merhaba. Basit bir geri sayım sayacı bazen kafaları karıştırmıştır. Bu gibi durumlar için basit bir örnek ile sayım aracını göstermek istedim.

geri-sayim-araci

Resimdeki gibi biraz afilli bir forma timer, textbox, buton ve label kontrolleri ekleyerek başlayabiliriz. Zamanı kısıtlı arkadaşlar örneği aşağıdaki bağlantıdan indirebilir…

Form tasarımından sonra kod tarafına geçebiliriz. İlk olarak sayacı başlatacak olan buton kontrolü clik olayına aşağıdaki kodları yazıyoruz. Burada yapılan global olarak tanımlanan sayı değişkenine kullanıcıdan textbox aracılığı ile alınan sayıyı atadıktan sonra timer kontrolünü bir saniyede bir çalışacak şekilde aktif ediyoruz.

[cc lang=’csharp’ ] int sayi;
private void btnBasla_Click(object sender, EventArgs e)
{
sayi = Convert.ToInt32(textBox1.Text);
timer1.Enabled = true; // Timer aktif ediyoruz
timer1.Interval = 1000; // Saniyede bir çalışması için interval değerini 1000 yapıyoruz
}[/cc]

Aktif edilen timer içindeki kodu her bir saniyede bir çalıştıracağı için gelen sayıyı birer azaltıp label kontrolü yardımı ile azalan sayıyı gösteriyoruz. Ve sıfır olunca timer kontrolünü durduruyoruz.

[cc lang=’csharp’ ] private void timer1_Tick(object sender, EventArgs e)
{
sayi–; //timer her saniyede sayıyı 1 azaltacak
lblSayi.Text = sayi.ToString();
if (sayi == 0)
{
timer1.Enabled = false;
}
}[/cc]

[wpdm_file id=15]

“Windows formda geri sayım sayacı” üzerine 4 yorum

  1. kardesım ıyı gunler pekı dakıkanında atmasını ıstersek nasıl duzenleyecegız mesala 4 yazıcam 3:59 – 3:58 dıye gerı sayıcak nasıl yapabılırız bunu yardımcı olabılırmısın ? :S

    1. Dakika için basit bir mantıkla çözüm yapılabilir. Dakika içinde ayrı 2. bir timer oluşturup o timer intervar değerini 1 dakika da bir yani 60 saniyede bir yenilenmesi için değer girersin. Yapamazsan http://coder.digitaldunyam.net/answers/ buradan konusunu açıp gönder projeni yapıp geri göndereyim.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir