mertugruul Posted April 13, 2015 Share Posted April 13, 2015 Merhaba. Kronometre yapmak istiyorum. 2 tane textBox'ım var. textBox1'den saat alınacak 2'den ise dk alınacak. textBox'ların altına 3 tane label koydum. Saat, Dk ve saniye adında. Saniye 60'dan geriye saydırıyorum timer ile dk bir azalıyor daha sonra saniye adlı label yine 60'dan geriye gidiyor ta ki 0 olana kadar bu kez de Dakika adlı label olduğu yerden devam etmiyor. Yani saniye sürekli 0 olduğunda 60 olup devam ediyor ama dakika 1 kere azaldıktan sonra geriye gitmiyor. Ekran görüntüsü: http://prntscr.com/6td72o int saniye = 60; private void Başlat_Click(object sender, EventArgs e) { timer1.Interval = 100; timer1.Start(); } private void timer1_Tick(object sender, EventArgs e) { int saat = Convert.ToInt32(textBox1.Text); int dk = Convert.ToInt32(textBox2.Text); if(saniye > -1) { label4.Text = saniye--.ToString(); if (saniye == 0) { saniye = 60; label4.Text = saniye.ToString(); int dkSonuc = dk - 1; label3.Text = dkSonuc.ToString(); } } } private void Durdur_Click(object sender, EventArgs e) { timer1.Stop(); } Quote Link to comment Share on other sites More sharing options...
KintaRo Posted April 14, 2015 Share Posted April 14, 2015 int dkSonuc = dk - 1; yerine int dkSonuc = saat - 1; deneyin Quote Link to comment Share on other sites More sharing options...
by.aslan Posted April 14, 2015 Share Posted April 14, 2015 (edited) Kodlarını aşağıdaki şekilde değiştir. Saat ve dakikanın değişkenlerini timer'ın içinde almışsın. Sanırım değişmemeleri onunla ilgili. Nitekim onları dışarıya taşıyınca sorun olmadı. bool kontrol değişkenini durdurup tekrar başlattığında değerler sıfırlanmasın diye kullanman gerekir. Umarım yardımcı olur. Kolay gelsin. int saniye = 60; int dk,saat; bool kontrol = true; private void Başlat_Click(object sender, EventArgs e) { timer1.Interval = 100; if (kontrol) { saat = Convert.ToInt32(textBox1.Text); dk = Convert.ToInt32(textBox2.Text); label3.Text = Convert.ToString(dk); kontrol = false; } timer1.Start(); } private void timer1_Tick(object sender, EventArgs e) { if (saniye > -1) { label4.Text = saniye--.ToString(); if (saniye == 0) { saniye = 60; label4.Text = saniye.ToString(); dk--; ; label3.Text = dk.ToString(); } } } private void button2_Click(object sender, EventArgs e) { timer1.Stop(); } Edited April 14, 2015 by by.aslan Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.