日期:2014-05-17  浏览次数:21020 次

C# 窗体程序,执行顺序


这是代码部分

这是界面   “取消” 是button2     12345   是label1

                   点击取消时,label的text 不会改变,3秒后这个窗口关闭。
注释掉45行,      点击取消时,隔3秒,label1 的text 按要求变化。
注释掉42到45行,点击取消时,label1的text 按要求变化。

好像执行顺序是42-44行,再执行45行,在执行41行。

这是什么原因?我想点击取消,label1的text按要求变化,3秒后关闭窗口,该如何实现?

C#?窗体,顺序

------解决方案--------------------
你放一个timer,然后设置interval为3000,编写代码:this.Close();设置enabled = false。
点取消的时候激活timer就可以了。
------解决方案--------------------
while循环中加上 
Application.DoEvents();
Thread.Sleep(1000);
不过你最好用
------解决方案--------------------
在设置label1.Text后,加上label1.Update();就可以了。用Application.DoEvents();也可以,update更好。
等待3秒可以直接:Thread.Sleep(3000);就可以了。
这是因为主线程一直被占用,没时间去更新界面。