private void button1_Click(object sender, EventArgs e)
{
for (int i=1; i < 101; i++)
{
this.pictureBox1.ImageLocation = "http://www.XXX.com/验证码.bmp";
System.Threading.Thread.Sleep(1000);
// MessageBox.Show("如果加上这行消息提示程序运行正常");
}
}
=================================================
我的设计原意是:点击按钮后自动每隔三秒钟刷新一下验证码,连续100次。
调试通过了,可是不知道这代码哪里有问题,点击“按钮”之后程序就死了。 如果在里面加上一行mssagebox.show程序运行正常。哪位前辈能指点一下原因吗?
{
for (int i=1; i < 101; i++)
{
this.pictureBox1.ImageLocation = "http://www.XXX.com/验证码.bmp";
System.Threading.Thread.Sleep(1000);
// MessageBox.Show("如果加上这行消息提示程序运行正常");
}
}
=================================================
我的设计原意是:点击按钮后自动每隔三秒钟刷新一下验证码,连续100次。
调试通过了,可是不知道这代码哪里有问题,点击“按钮”之后程序就死了。 如果在里面加上一行mssagebox.show程序运行正常。哪位前辈能指点一下原因吗?
你在循环里加入Console.WriteLine(i);调试看有没有输出。
如果有,那我的推测就是正确的。
你需要把这个循环放到一个新线程里面执行。或者改别的计时方法,比如Timer控件。
你说的完全正确呵呵。。可是我刚学c#,不知道怎么用timer控件呢呵呵
private Timer timer;//这是为了声明全局变量
private int i = 0;//也是全局变量
void timer_Tick(object sender, EventArgs e)
{
if (i < 100)
{
this.pictureBox1.ImageLocation = "http://www.XXX.com/验证码.bmp";
++i;
}
else
{
timer.Enabled = false;
}
}
在窗体的Load事件里面加入下面的代码: timer = new Timer();
timer.Interval = 3000;//这里设置每隔多长时间触发一次Timer世界
timer.Tick += new EventHandler(timer_Tick);
timer.Enabled = false;
按钮的Click事件代码改成 private void button1_Click(object sender, EventArgs e)
{
timer.Enabled = true;
}