我正在使用C#使用Visual Studio 2013进行项目。我希望计时器从120分钟倒计时到0分钟,当它达到0时,一个消息框将显示时间已到。我还希望在按下重置按钮时重置计时器。但是,当我按下重置按钮时,即使定时器被重置,我按下开始按钮,同时出现消息框“Time up up”,定时器也不会启动。请帮我。我是C#的新手,所以请尽量不要给我很难理解的复杂答案。此外,你会看到我更多,因为我会有更多问题要问。谢谢!! (这是我的代码。)
private void startbutton_Click(object sender, EventArgs e)
{
timer.Enabled = true;
foreach (var button in Controls.OfType<Button>())
{
button.Click += button_Click;
timer.Start();
button.BackColor = Color.DeepSkyBlue;
}
}
private void stopandresetbutton_Click(object sender, EventArgs e)
{
button.BackColor = default(Color);
timer.Stop();
timeleft = 0;
timerlabel.Hide();
}
int timeleft = 120;
private void timer_Tick(object sender, EventArgs e)
{
if (timeleft > -1)
{
timerlabel.Text = timeleft + " minutes";
timeleft = timeleft - 1;
}
else
{
timer.Stop();
MessageBox.Show("Time's up!");
}
}
答案 0 :(得分:3)
您的错误是stopandresetbutton_Click
方法。您不应将timeLeft变量设置为0.因为您要重置计时器,您应该将其设置为120(如果您的单位是分钟)。
或强>
您在startbutton_Click
方法中将timeLeft变量设置为120。这样它也能正常工作
更好的方法
你可以写一个这样的属性
private int TimeLeft {
get {return timeLeft; }
set {
timeLeft = value;
timerlabel.Text = timeleft + " minutes";
}
}
这样您可以将TimeLeft
设置为某个值,标签的文本也会更改。这是因为您可能不记得在设置timeLeft的值后更改标签的文本。