C# İle Visual Studio.Net Timer Kontrolü
Timer,Bir Windows sayacını temsil eder. Sayaç çalışmaya başladığı zaman, belirli zaman aralıklarında Tick olayı gerçekleşir. Timer kontrolünün Interval değeri, Tick olayının kaç milisaniyede bir gerçekleşeceğini belirler. Örneğin Interval değeri 2000 olan bir sayaç, Tick olayında yazılan kodları iki saniyede bir çalıştıracaktır.
Sayacı başlatmak için kontrolün Start metodu, durdurmak için ise Stopmetodu kullanılır. Enabled özelliği, sayacın aktif olup olmadığını belirler.
private void btnBasla_Click(object sender, System.EventArgs e)
{
// Sayaç 5 saniyede bir çalışacak timer1.Interval = 5000;
timer1.Start();
}
private void timer1_Tick(object sender, System.EventArgs e)
{
MessageBox.Show(“Sayaç çalışıyor…”);
}
Şimdi bununla ilgili bir örnek uygulamanın kodlarını verelim..
Bir Kronometre uygulası yapalim. Uygulamayı yapabilmek için asağıdaki adımları takip edin..
1. “Kronometre” isminde yeni bir Windows projesi açın.
2. Properties panelinden, Form1 nesnesinin BackColor özelliğini
“Menu” olarak seçin. Font özelliğini, yanındaki + tuşuna basarak genişletin. Font özelliğinin alt özellikleri listelenir.
• Name özelliğini Tahoma,
• Text özelliğini “Yazılım Uzmanlığı Kronometre Uygulaması”,
• Size özelliğini 10 olarak ayarlayın.
Form görünüm özellikleri, eklenecek kontrollerin (değiştirilmedikleri sürece)
görünümlerini de etkiler.
3. Toolbox panelinden Form üzerine bir Label ekleyin. Özelliklerini atayın:
• Text: Kronometrem
• Font – Name: Forte, Font – Size: 28
• Dock: Top
• TextAlign: BottomCenter
4. Bir Label kontrolü ekleyin. Özelliklerini atayın:
• Text: 0
• Font – Size: 30
• TextAlign: MiddleCenter
• Name: lblSure
5. Forma bir Timer kontrolü ekleyin. Name özelliğini tmrKronometre olarak değiştirin.
. Bir ComboBox ekleyin. Text özelliğini “Hız Seçin” olarak, Name özelliğini de cmbInterval olarak değiştirin. Items Collection içine sırayla
1000, 2000, 3000, 4000 değerlerini girin.
Bu kontrol, çalışma anında Timer kontrolünün Interval özelliğini değiştirmeyi, dolayısıyla kronometrenin hızını ayarlamayı sağlayacak.
7. Biri “Dur”, diğeri “Başla” Text özelliklerine sahip iki Button ekleyin. Kontrollerin Name özelliklerini sırayla btnDur ve btnBasla olarak değiştirin.
8. Bir ListBox kontrolü ekleyin ve Name özelliğini lbKayit olarak değiştirin. Bu kontrol kronometrenin başlama ve durma zamanlarını kaydetmeyi sağlayacak.
9. Bir TextBox kontrolü ekleyin. Name özelliğini txtSure olarak değiştirin ve Text özelliğinde yazan yazıyı silin.
10. Eklenen kontrolleri, resim (Resim numarası) de görünen şekilde düzenleyin.
Form Tasarımı Şu Şekilde oluşmuş olacak..
Şimdi kodların yazımına geçebiliriz aşağıdaki adımları takip edin..
1. Formun üzerine sağ tıklayın ve View Code komutunu seçin.
2. Açılan kod sayfasında, KalanSure isimli bir değişken tanımlayın.
public int KalanSure;
3. Formun tasarım görünümüne dönün ve Başla isimli Button kontrolüne çift tıklayın. btnBasla_Click yordamı içine Timer kontrolünü ayarlayıp başlatan, ListBox kontrolüne kayıtları giren, kalan süreyi Label kontrolünde görüntüleyen kodları yazın.
<!– /* Font Definitions */ @font-face {font-family:Batang; panose-1:2 3 6 0 0 1 1 1 1 1; mso-font-alt:바탕; mso-font-charset:129; mso-generic-font-family:roman; mso-font-pitch:variable; mso-font-signature:-1342176593 1775729915 48 0 524447 0;} @font-face {font-family:”Cambria Math”; panose-1:2 4 5 3 5 4 6 3 2 4; mso-font-charset:162; mso-generic-font-family:roman; mso-font-pitch:variable; mso-font-signature:-1610611985 1107304683 0 0 159 0;} @font-face {font-family:Calibri; panose-1:2 15 5 2 2 2 4 3 2 4; mso-font-charset:162; mso-generic-font-family:swiss; mso-font-pitch:variable; mso-font-signature:-1610611985 1073750139 0 0 159 0;} @font-face {font-family:”Lucida Console”; panose-1:2 11 6 9 4 5 4 2 2 4; mso-font-charset:162; mso-generic-font-family:modern; mso-font-pitch:fixed; mso-font-signature:-2147482993 6144 0 0 31 0;} @font-face {font-family:”\@Batang”; panose-1:2 3 6 0 0 1 1 1 1 1; mso-font-charset:129; mso-generic-font-family:roman; mso-font-pitch:variable; mso-font-signature:-1342176593 1775729915 48 0 524447 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-unhide:no; mso-style-qformat:yes; mso-style-parent:”"; margin-top:0cm; margin-right:0cm; margin-bottom:10.0pt; margin-left:0cm; line-height:115%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:”Calibri”,”sans-serif”; mso-fareast-font-family:”Times New Roman”; mso-bidi-font-family:”Times New Roman”;} .MsoChpDefault {mso-style-type:export-only; mso-default-props:yes; font-size:10.0pt; mso-ansi-font-size:10.0pt; mso-bidi-font-size:10.0pt; mso-ascii-font-family:Calibri; mso-hansi-font-family:Calibri;} @page Section1 {size:612.0pt 792.0pt; margin:70.85pt 70.85pt 70.85pt 70.85pt; mso-header-margin:35.4pt; mso-footer-margin:35.4pt; mso-paper-source:0;} div.Section1 {page:Section1;} –> 4. Dur isimli Button kontrolüne çift tıklayın. btnDur_Click yordamı içine Timer kontrolünü durduracak ve ListBox kontrolüne kayıtları ekleyecek kodları yazın.
<!– /* Font Definitions */ @font-face {font-family:Batang; panose-1:2 3 6 0 0 1 1 1 1 1; mso-font-alt:바탕; mso-font-charset:129; mso-generic-font-family:roman; mso-font-pitch:variable; mso-font-signature:-1342176593 1775729915 48 0 524447 0;} @font-face {font-family:”Cambria Math”; panose-1:2 4 5 3 5 4 6 3 2 4; mso-font-charset:162; mso-generic-font-family:roman; mso-font-pitch:variable; mso-font-signature:-1610611985 1107304683 0 0 159 0;} @font-face {font-family:Calibri; panose-1:2 15 5 2 2 2 4 3 2 4; mso-font-charset:162; mso-generic-font-family:swiss; mso-font-pitch:variable; mso-font-signature:-1610611985 1073750139 0 0 159 0;} @font-face {font-family:”Lucida Console”; panose-1:2 11 6 9 4 5 4 2 2 4; mso-font-charset:162; mso-generic-font-family:modern; mso-font-pitch:fixed; mso-font-signature:-2147482993 6144 0 0 31 0;} @font-face {font-family:”\@Batang”; panose-1:2 3 6 0 0 1 1 1 1 1; mso-font-charset:129; mso-generic-font-family:roman; mso-font-pitch:variable; mso-font-signature:-1342176593 1775729915 48 0 524447 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-unhide:no; mso-style-qformat:yes; mso-style-parent:”"; margin-top:0cm; margin-right:0cm; margin-bottom:10.0pt; margin-left:0cm; line-height:115%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:”Calibri”,”sans-serif”; mso-fareast-font-family:”Times New Roman”; mso-bidi-font-family:”Times New Roman”;} .MsoChpDefault {mso-style-type:export-only; mso-default-props:yes; font-size:10.0pt; mso-ansi-font-size:10.0pt; mso-bidi-font-size:10.0pt; mso-ascii-font-family:Calibri; mso-hansi-font-family:Calibri;} @page Section1 {size:612.0pt 792.0pt; margin:70.85pt 70.85pt 70.85pt 70.85pt; mso-header-margin:35.4pt; mso-footer-margin:35.4pt; mso-paper-source:0;} div.Section1 {page:Section1;} –>
private void btnDur_Click( System.Object sender, System.EventArgs e ) {
// Timer kontrolünü durdurur.
tmrKronometre.Stop();
// ListBox kontrolüne kayıt girilir.
lbKayit.Items.Add( “Kronometre durduruldu: ” + DateAndTime.Now.TimeOfDay.ToString() );
}
<!– /* Font Definitions */ @font-face {font-family:Batang; panose-1:2 3 6 0 0 1 1 1 1 1; mso-font-alt:바탕; mso-font-charset:129; mso-generic-font-family:roman; mso-font-pitch:variable; mso-font-signature:-1342176593 1775729915 48 0 524447 0;} @font-face {font-family:”Cambria Math”; panose-1:2 4 5 3 5 4 6 3 2 4; mso-font-charset:162; mso-generic-font-family:roman; mso-font-pitch:variable; mso-font-signature:-1610611985 1107304683 0 0 159 0;} @font-face {font-family:Calibri; panose-1:2 15 5 2 2 2 4 3 2 4; mso-font-charset:162; mso-generic-font-family:swiss; mso-font-pitch:variable; mso-font-signature:-1610611985 1073750139 0 0 159 0;} @font-face {font-family:”Lucida Console”; panose-1:2 11 6 9 4 5 4 2 2 4; mso-font-charset:162; mso-generic-font-family:modern; mso-font-pitch:fixed; mso-font-signature:-2147482993 6144 0 0 31 0;} @font-face {font-family:”\@Batang”; panose-1:2 3 6 0 0 1 1 1 1 1; mso-font-charset:129; mso-generic-font-family:roman; mso-font-pitch:variable; mso-font-signature:-1342176593 1775729915 48 0 524447 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-unhide:no; mso-style-qformat:yes; mso-style-parent:”"; margin-top:0cm; margin-right:0cm; margin-bottom:10.0pt; margin-left:0cm; line-height:115%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:”Calibri”,”sans-serif”; mso-fareast-font-family:”Times New Roman”; mso-bidi-font-family:”Times New Roman”;} .MsoChpDefault {mso-style-type:export-only; mso-default-props:yes; font-size:10.0pt; mso-ansi-font-size:10.0pt; mso-bidi-font-size:10.0pt; mso-ascii-font-family:Calibri; mso-hansi-font-family:Calibri;} @page Section1 {size:612.0pt 792.0pt; margin:70.85pt 70.85pt 70.85pt 70.85pt; mso-header-margin:35.4pt; mso-footer-margin:35.4pt; mso-paper-source:0;} div.Section1 {page:Section1;} –> 5. Tasarım görünümünde tmrKronometre isimli Timer kontrolüne çift tıklayın. tmrKronometre_Tick yordamı içine kalan süreyi azaltacak ve süre sıfırlandığında kronometreyi durduracak kodları yazın.
private void tmrKronometre_Tick( System.Object sender, System.EventArgs e )
{
// Her saniye geçtiğinde sure değeri 1
azalacaktır.
KalanSure = KalanSure – 1;// KalanSure değeri kullancıya gösterilir
lblSure.Text = System.Convert.ToString( KalanSure );durdurulur.
// KalanSure değeri sıfıra ulaşmışsa kronometreif ( KalanSure == 0 ) {
tmrKronometre.Stop();
lbKayit.Items.Add( “Süre Doldu: ” +DateAndTime.Now.TimeOfDay.ToString() );
}MessageBox.Show( “Süre doldu” );
}
Projemiz bitti , derleyip çalıştırabilirsiniz.
<!– /* Font Definitions */ @font-face {font-family:Batang; panose-1:2 3 6 0 0 1 1 1 1 1; mso-font-alt:바탕; mso-font-charset:129; mso-generic-font-family:roman; mso-font-pitch:variable; mso-font-signature:-1342176593 1775729915 48 0 524447 0;} @font-face {font-family:”Cambria Math”; panose-1:2 4 5 3 5 4 6 3 2 4; mso-font-charset:162; mso-generic-font-family:roman; mso-font-pitch:variable; mso-font-signature:-1610611985 1107304683 0 0 159 0;} @font-face {font-family:Calibri; panose-1:2 15 5 2 2 2 4 3 2 4; mso-font-charset:162; mso-generic-font-family:swiss; mso-font-pitch:variable; mso-font-signature:-1610611985 1073750139 0 0 159 0;} @font-face {font-family:”Lucida Console”; panose-1:2 11 6 9 4 5 4 2 2 4; mso-font-charset:162; mso-generic-font-family:modern; mso-font-pitch:fixed; mso-font-signature:-2147482993 6144 0 0 31 0;} @font-face {font-family:”\@Batang”; panose-1:2 3 6 0 0 1 1 1 1 1; mso-font-charset:129; mso-generic-font-family:roman; mso-font-pitch:variable; mso-font-signature:-1342176593 1775729915 48 0 524447 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-unhide:no; mso-style-qformat:yes; mso-style-parent:”"; margin-top:0cm; margin-right:0cm; margin-bottom:10.0pt; margin-left:0cm; line-height:115%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:”Calibri”,”sans-serif”; mso-fareast-font-family:”Times New Roman”; mso-bidi-font-family:”Times New Roman”;} .MsoChpDefault {mso-style-type:export-only; mso-default-props:yes; font-size:10.0pt; mso-ansi-font-size:10.0pt; mso-bidi-font-size:10.0pt; mso-ascii-font-family:Calibri; mso-hansi-font-family:Calibri;} @page Section1 {size:595.0pt 737.0pt; margin:29.0pt 37.0pt 14.0pt 84.0pt; mso-header-margin:35.4pt; mso-footer-margin:35.4pt; mso-paper-source:0;} div.Section1 {page:Section1;} @page Section2 {size:595.0pt 737.0pt; margin:61.0pt 37.0pt 14.0pt 84.0pt; mso-header-margin:35.4pt; mso-footer-margin:35.4pt; mso-columns:2 not-even 143.35pt 16.65pt 314.0pt; mso-paper-source:0;} div.Section2 {page:Section2;} @page Section3 {size:595.0pt 737.0pt; margin:61.0pt 37.0pt 14.0pt 84.0pt; mso-header-margin:35.4pt; mso-footer-margin:35.4pt; mso-paper-source:0;} div.Section3 {page:Section3;} @page Section4 {size:595.0pt 737.0pt; margin:61.0pt 37.0pt 14.0pt 84.0pt; mso-header-margin:35.4pt; mso-footer-margin:35.4pt; mso-columns:2 not-even 154.1pt 5.9pt 314.0pt; mso-paper-source:0;} div.Section4 {page:Section4;} @page Section5 {size:595.0pt 737.0pt; margin:61.0pt 37.0pt 14.0pt 84.0pt; mso-header-margin:35.4pt; mso-footer-margin:35.4pt; mso-paper-source:0;} div.Section5 {page:Section5;} @page Section6 {size:612.0pt 792.0pt; margin:70.85pt 70.85pt 70.85pt 70.85pt; mso-header-margin:35.4pt; mso-footer-margin:35.4pt; mso-paper-source:0;} div.Section6 {page:Section6;} –>
private void btnBasla_Click( System.Object sender, System.EventArgs e ) {
// Başlangıç zamanı “KalanSure“ değişkenine
atanır.
);
KalanSure = System.Convert.ToInt32( txtSure.Text
// Kalan süre kullanıcıya gösterilir.
lblSure.Text = System.Convert.ToString( KalanSure );
// ListBox kontrolüne kayıt girilir.
lbKayit.Items.Add( “Kronometre balad: “ + DateAndTime.Now.TimeOfDay.ToString() );
belirler.
// ComboBox kontrolünden seçilen değer,
// Timer kontrolünün çalışma hızını
tmrKronometre.Interval = System.Convert.ToInt32(
cmbInterval.Text );
}
// Timer kontrolünü çalıştırır.
tmrKronometre.Start();
Bu yazı 16 Aralık 2009 tarihinde Aytaç Cici tarafından Bilişim Haberleri kategorisi altına yazılmış ve 398 views defa okunmuş.







