2016-03-24 47 views
1

我想根據用戶輸入使計時器倒計時。定時器倒計時的用戶輸入

這是我的形式是什麼樣子:

this is my timercountdown

,這是我的代碼:

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; 
} 

我怎麼能當用戶在文本框中輸入一個新值更新計時器?

回答

1

附加一個OnTextChanged事件處理程序到您的文本框1。停止計時時的TextInput改變

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

} 

或者你可以禁用用戶輸入時啓動計時器,並重新啓用一次計時器停止。

0

只需單擊開始按鈕,將文本框啓用值設置爲false。並在定時器停止時再次啓用或在取消按鈕上進行檢查。這裏是一個代碼: textBox1.Enabled = false;
And
textBox1.Enabled = true;