我制作了这段代码,但屏幕上显示的时间循环与确切的经过时间之间存在延迟。
Timer t = new Timer();
int time = 15;
string timestr;
t.Interval = 1000;
t.Tick += new EventHandler(Time);
void Time(object sender, EventArgs e)
{
if (time == 0)
{ time = 15; }
if (time != 0)
{
time--;
timestr = time.ToString();
label.Text = timestr;
}
}
答案 0 :(得分:2)
我的猜测是你关闭一秒钟,因为计时器在达到间隔值之前不会触发第一个事件。
快速解决方法是在启动时自行触发事件:
t.Start();
Time(t, EventArgs.Empty);
答案 1 :(得分:0)
我想你需要试试这个。在Time函数结束之前添加Application.DoEvents()行。
void Time(object sender, EventArgs e)
{
if (time == 0)
{ time = 15; }
if (time != 0)
{
time--;
timestr = time.ToString();
label.Text = timestr;
}
Application.DoEvents();
}