我正在做一个winform应用程序,计时器工作正常。第一次工作,然后,它没有。 这是代码:
public void GetNewTurn(Turn turn)
{
_tmrStarTime = DateTime.Now;
timer1.Start();
timer1.Tick += tmr1_Tick;
}
private void tmr1_Tick(object sender, EventArgs e)
{
//timer code here
timer.stop();
}
所以,这个想法是: GetNewTurn是一个从另一个地方调用的函数。我第一次调用它,工作正常,然后没有。我在tmr1_Tick中放了一个断点,我可以看到它只是第一次工作,然后,没有。 在Timer属性中,我设置Enable = True。 我做错了什么? 谢谢!
答案 0 :(得分:3)
你不应该在第一个滴答声中停止tmr1_Tick
public void GetNewTurn(Turn turn)
{
_tmrStarTime = DateTime.Now;
timer1.Start();
timer1.Tick += tmr1_Tick;
}
private void tmr1_Tick(object sender, EventArgs e)
{
//the code for each tick
}
答案 1 :(得分:3)
仅在构造函数或OnLoad覆盖中添加处理程序一次。
timer1.Tick += tmr1_Tick;
public void GetNewTurn(Turn turn)
{
_tmrStarTime = DateTime.Now;
timer1.Start();
}