Winform应用程序Timer无法正常工作

时间:2016-04-14 21:14:26

标签: c# winforms timer

我正在做一个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。 我做错了什么? 谢谢!

2 个答案:

答案 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();
}