C#变量自增问题

发布时间:2024-05-29 13:00 发布:上海旅游网

问题描述:

private void button1_Click(object sender, EventArgs e)
{
timer1.Enabled = true;
}

private void timer1_Tick(object sender, EventArgs e)
{
int i = 0;

textBox1.AppendText("已过了" + i.ToString() + "秒\r\n"); i++;
}

这段代码哪错了?为什么I不自增,总是0

问题解答:

int i=0 在timer1_Tick()这个函数里,那么只要这个函数响应一次,都会创建变量i,并且将他的值置为0。所以,无论过多少时间,i的值始终是0。
解决的办法可以在程序中,定义一个全局的变量i,函数
private void timer1_Tick(object sender, EventArgs e)
{
//int i = 0;
i++;
textBox1.AppendText("已过了" + i.ToString() + "秒\r\n"); i++;
}
改为这个就可以了。

你把i弄到外面来就可以了

你这样的话,i是个局部变量,只有执行了时间才创建,也就是说,执行一次定时,创建一次,执行完了,就回收了

没有循环啊

while(timer1.Enabled)
{
if(i > 时间)
{
timer1.Enabled = false;
}
textBox1.AppendText("已过了" + i.ToString() + "秒\r\n"); i++;

}

呵呵,每次都让i=0后又自增,当然不变了

没话说了我也没看出来他要长的

定时器没有启动
private void button1_Click(object sender, EventArgs e)
{
timer1.Enabled = true;
timer1.Start(); //加上这一句

}

热点新闻