在我的Windows窗体应用程序中,我关闭一个窗体并打开另一个窗体:
MyApp.MySecondForm frmInst = new MyApp.MySecondForm();
frmInst.Show();
this.Hide();
但是在我这样打开之前,我在第一个表单中设置了标签文本,因为我想通知用户正在加载第二个表单。
想象一下,第二个表单的加载需要10秒,当我按下按钮以打开第二个按钮时,标签文本在第二个表单打开之前不会被更改。当我关闭第二个表单时,我回想起第一个表单,看到文本已经改变。
用户点击按钮后,我应该按照哪种方式设置标签文字?
提前致谢。
答案 0 :(得分:1)
你是在异步发射那个10秒的进程吗?
如果没有,那就是造成延误的原因。它获取信息(10秒),然后更新GUI线程。
尝试使用BackgroundWorker: http://www.dotnetperls.com/backgroundworker
答案 1 :(得分:1)
您必须在Refresh()
之前调用frmInst.Show()
方法。因为在方法执行完毕之前图形不会刷新,除非你手动完成。