为什么我的计时器会在一秒后停止

时间:2016-02-26 18:26:47

标签: c#

当我点击启动计时器的按钮时间隔设置为1000毫秒时,它会完成timer1_tick方法中的代码,然后没有任何反应。它永远不会达到其他声明

 private void timer1_Tick(object sender, EventArgs e)
    {
        secondsLeft = 20;
        if (secondsLeft > 0)
        {
            secondsLeft = secondsLeft - 1;
            lbSecondsRemaining.Text = secondsLeft.ToString() + " seconds";
        }
        else
        {
            timer1.Stop();
            MessageBox.Show("Timer stopped");
        }


    }

    private void button1_Click(object sender, EventArgs e)
    {
        timer1.Start();
    }

标签lbSecondsRemaining更改为19,然后没有。

1 个答案:

答案 0 :(得分:2)

你应该从方法中取出secondsLeft = 20;,因为每当方法触发时它只会将secondsLeft设置为20。

 private void timer1_Tick(object sender, EventArgs e)
    {

        if (secondsLeft > 0)
        {
            secondsLeft = secondsLeft - 1;
            lbSecondsRemaining.Text = secondsLeft.ToString() + " seconds";
        }
        else
        {
            timer1.Stop();
            MessageBox.Show("Timer stopped");
        }


    }

    private void button1_Click(object sender, EventArgs e)
    {
        secondsLeft = 20;
        timer1.Start();
    }