我的程序是某种测试。通过考试的时间有限(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年......)
答案 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;