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..

Kronometrem

Ş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.

KronometremKod1

<!– /* 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ı 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 kontrodurdurur.

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 kronometre

if ( 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


atar.

);


KalanSure = System.Convert.ToInt32( txtSure.Text


// Kalan re kullanıcıya 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 silen değer,

// Timer kontronün çalışma nı

tmrKronometre.Interval = System.Convert.ToInt32(


cmbInterval.Text );


}


// Timer kontroçalıştırır.

tmrKronometre.Start();

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Bu yazı 16 Aralık 2009 tarihinde Aytaç Cici tarafından Bilişim Haberleri kategorisi altına yazılmış ve 398 views defa okunmuş.

Tepki verin!

Aşağıdaki kutucuğa e-posta adresinizi girin sitemize yeni eklenen içerikten haberdar olun...

RSS okuyucu ile takip edin...

    Programlama UkMediaWeb London