C# Windows Form uygulamalarında Timer kontrolü kullanımı istenen komutların belirlenen zaman aralığında tekrarlanmasını sağlamak için kullanılmaktadır. Timer kontrolüne ait özellikleri ve Timer kontrolü kullanılarak yapılmış örnekleri yazının devamında bulabilirsiniz.
İnterval Özelliği: Bu özellik kodlarımızın ne kadar sürede tekrarlanacağını belirlediğimiz özelliktir. Milisaniye cinsinden değer verilir. Örnek olarak her 1 saniyede çalışmasını istediğimiz kodlar için Interval özelliği 1000, 1,5 saniye olarak ayarlamak için 1500 olarak ayarlanmalıdır.
Enabled Özelliği: Değeri true ise timer’ın çalışmasını,false ise durdurulmasını sağlar.Yani enabled değeri true ise timer’ın Tick olayına yazılan kodlar çalışır, false ise çalışmaz.
Start: Timer nesnesini başlatır.
Stop: Timer nesnesini durdurur.
Olayları:
Tick Olayı : Tekrarlanmasını istediğimiz kodları Timer_Tick olayına yazarız.
Yukarıda belirttiğimiz özellikleri birkaç örnek üzerinde uygulayalım.
Örnek 1: Formumuza eklediğimiz Butona basıldığında label kontrolünde 100 ms arayla artan bir sayaç yapalım.
Öncelikle formumuzu tasarlayalım. Formumuza 1 adet Label 3 adet Button ekledikten sonra Toolbox penceresinden Timer kontrolünü sürükle bırak yöntemiyle Formumuza sürükleyebiliriz.
Bu işlem sonucunda Timer nesnemiz Formumuzun alt tarafında görülecektir. Şimdi sırasıyla kodlarımızı yazacağız.
İlk olarak Form_Load olayı için kodlarımızı yazmak için Form üzerinde boş bir alanda çift tıklıyoruz.
1 2 3 4 5 6 7 |
private void Form1_Load(object sender, EventArgs e) { label1.Text = "0"; timer1.Interval = 100; } |
Burada form yüklendiği anda gerekli ayarlamaları yapabiliriz. timer1 kontrolünün interval özelliğini buradan ayarlayabileceğiniz gibi Tasarım bölümünde timer1 üzerine bir kez tıkladıktan sonra Properties penceresinden de yapabilirsiniz.
Şimdi public olarak sayac isimli bir değişken oluşturarak ilk değer olarak 0 değerini verelim.
Button1 çift tıklayarak timer1′ i başlatalım.
1 2 3 4 5 6 |
private void button1_Click(object sender, EventArgs e) { timer1.Start(); } |
Button2 ile timer1 nesnesini durduralım.
1 2 3 4 5 6 |
private void button2_Click(object sender, EventArgs e) { timer1.Stop(); } |
ve Sıfırla butonu ile sayacın sıfırlanmasını sağlayalım.
1 2 3 4 5 6 |
private void button3_Click(object sender, EventArgs e) { sayac = 0; } |
Son olarak timer1 kontrolü üzerinde çift tıklayarak tekrar etmesini istediğimiz kod satırlarını timer1_Tick olayına yazalım.
1 2 3 4 5 6 7 |
private void timer1_Tick(object sender, EventArgs e) { sayac++; label1.Text = sayac.ToString(); } |
Kodlarımızı yazıp projemizi çalıştırdığımız zaman Sonuç aşağıdaki gibi olacaktır.
Örnek 2: Bu örneğimizde Form arkaplan renginin timer kontrolü sayesinde 1 sn aralıkla Kırmızı ve Beyaz olmasını sağlayalım.
Yine ilk örnekte olduğu gibi public olarak sayac değişkenimizi oluşturarak 0 değeri verek kodlarımıza başlayalım.
1 2 3 |
int sayac=0; |
1 2 3 4 5 6 |
private void Form1_Load(object sender, EventArgs e) { timer1.Interval = 1000; } |
1 2 3 4 5 6 7 8 9 10 11 |
private void button1_Click(object sender, EventArgs e) { timer1.Start(); } private void button2_Click(object sender, EventArgs e) { timer1.Stop(); } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
private void timer1_Tick(object sender, EventArgs e) { sayac++; if (sayac%2==1) { this.BackColor = Color.Red; } if(sayac==2) { this.BackColor = Color.White; sayac = 0; } } |
nasıl yavaş yavaş opaticy yukseltme yapıcam.
tab tuşuna basarak timer’ın üzerine gel, sonra enter’ı kullan.
timer a çift tıklanmıyor
tab tuşuna basarak timer’ın üzerine gel, sonra enter’ı kullan.