C#timer控件的问题,为什么程序有bug

private void button4_Click(object sender, EventArgs e)
{
if (timer1.Enabled==false)
{
timer1.Interval = 10000;
timer1.Start();
timer1_Tick(null, null);
}
}
private void timer1_Tick(object sender, EventArgs e)
{
int temp = 1000;
int i;
for (i = 0; i < 500; i++)
{
temp = temp - 1;
label5.Text = temp.ToString();
}
}
每1s想让它在label5跳一个数字,但是它直接就蹦到500了请问怎么回事?

你做循环了啊,应该是做判断
timer1_Tick 里的内容会每秒执行1次,而不是循环里的内容每秒执行1次

所以应该是
int i=1000; //写在程序外面
private void timer1_Tick(object sender, EventArgs e)
{
label5.Text = i.ToString();
i--;
}

另外,每秒的话
timer1.Interval = 1000;
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-06-03
也不算"直接"蹦到500了,毕竟,for循环执行时间,也就是us级了....so.....

你这段代码在我看来,执行的就是:
Btn4被click->timer启动->执行timer1_Tick->for循环被执行了500次->label5的文本在us级的时间里一下子由1000变到了500......追问

对不起,没说到关键点上

相似回答