当Timer Control中的时间结束时,什么事件对行动负责?

时间:2014-05-08 14:52:45

标签: c# winforms timer

我的程序是某种测试。通过考试的时间有限(20分钟)。当时间结束时,必须完成测试,并出现MessageBox测试结果。在Form_Load

timer1.Tick += new EventHandler(timer1_Tick);
timer1.Interval = (1000) * (1);
timer1.Enabled = true;
timer1.Start();

private void timer1_Tick(object sender, EventArgs e)
        {            
            timer_label.Text = Convert.ToString(time);
            --time;
        }

如何在time == 0时完成测试?为什么timer_label中的时间会随着步骤2的变化而变化?(例如,1999年,1997年,1995年......)

1 个答案:

答案 0 :(得分:2)

  

如何在时间== 0时完成测试?

即使在某个时间间隔内,计时器也会提升。你应该为此启动计时器。如果你不想再举起活动,你应该停止计时器。您可以直接在Tick事件处理程序中执行此操作:

private void timer1_Tick(object sender, EventArgs e)
{            
    timer_label.Text = Convert.ToString(time);
    time--;

    if (time == 0)
       timer1.Stop();
}

第二个问题:

  

为什么timer_label中的时间会随着步骤2的变化而变化?(例如,1999年,1997年,   1995 ...)

从您的代码中没有理由这样做。看起来您订阅了两个计时器,或者您有两个同一计时器Tick事件的事件处理程序。还要确保在显示时间时没有递减运算符,如下所示:

timer_label.Text = Convert.ToString(--time);
--time;