2016-03-24 22 views
1

Zamanlayıcıyı kullanıcı girişine göre geri sayım yapmak istiyorum. kullanıcı metin kutusuna yeni bir değer girerse ben zamanlayıcı güncelleyebilirsiniz nasılZamanlayıcı geri sayımı için kullanıcı girişi

private int counter=80; 
DateTime dt = new DateTime(); 
private void button1_Click(object sender, EventArgs e) 
{ 
    progressBar1.Maximum = counter * 1000; 
    progressBar1.Step = 1000; 
    timer1 = new System.Windows.Forms.Timer(); 
    timer1.Tick += new EventHandler(timer1_Tick); 
    timer1.Interval = 1000; 
    timer1.Start(); 
    textBox1.Text = counter.ToString(); 
} 


private void timer1_Tick(object sender, EventArgs e) 
{ 
    counter--; 
    progressBar1.PerformStep(); 
    if (counter == 0) 
    { 
     timer1.Stop(); 
    } 
    textBox1.Text = dt.AddSeconds(counter).ToString("mm:ss"); 
} 

private void Form1_Load(object sender, EventArgs e) 
{ 
    timer1.Enabled = false; 
} 

private void button2_Click(object sender, EventArgs e) 
{ 
    timer1.Stop(); 
    textBox1.Clear(); 
    progressBar1.Value = 0; 
} 

: Bu benim kodudur

this is my timercountdown

ve:

Bu gibi benim form göründüğünü olduğunu ?

cevap

1

Metin kutusuna bir OnTextChanged olay işleyicisi ekleyin1. TextInput

protect void textinput1_OnTextChange(object sender, EventArg e) { 
    button2_Click(sender, e); 

} 

değiştirir Ya zamanlayıcı durdu kez zamanlayıcı başlar ve yeniden etkinleştirmek, zaman kullanıcı girişi devre dışı bırakabilirsiniz zaman zamanlayıcı durdurun.

0

Başlat düğmesi tıklatıldığında metin kutusu etkin değerini false olarak ayarlayın. Ve zamanlayıcının durduğunda tekrar etkinleştirin veya iptal düğmesine basın. İşte bir kod geçerli: textBox1.Enabled = false;
Ve
textBox1.Enabled = true;

İlgili konular