等待表单加载完成
本文关键字:加载 表单 等待表 等待 | 更新日期: 2023-09-27 18:30:35
是否有某种布尔值可以用来检查表单的实例是否已加载,或者等到表单加载完毕?
例如:
While(form_loaded == false) {
Try {
//do something
}
catch {
}//do try catch so code won't barf
}
我不断收到以下异常:
System.Windows.Forms 中发生了类型为"System.InvalidOperationException"的第一次机会异常.dll
System.Windows.Forms 中发生了类型为"System.InvalidOperationException"的未处理异常.dll
其他信息:在创建窗口句柄之前,无法在控件上调用
Invoke
或BeginInvoke
。
这就是我所担心的。
此外,如果需要更详细的解释,我可以尝试发布一些代码和/或更多输出调试信息。
尝试使用显示的事件,
如下所示 public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.Shown += new System.EventHandler(this.Form1_Shown);
}
private void Form1_Shown(object sender, EventArgs e)
{
}
}
希望这个帮助
表单完全加载后触发的第一个事件是 Shown
事件。 用它...
根据 MSDN,事件序列为:
应用程序启动时:
- 控件.句柄创建
- Control.BindingContextChanged
- 表单加载
- 控件.可见更改
- 表单已激活
- 表格所示
当应用程序关闭时:
- 表单.结束语 表单
- .表单关闭
- 表单.已关闭
- 表单.表单已关闭
- 表单.停用
正如@Henk Holterman在他的回答中所说,不要以事件驱动的形式使用忙碌的等待......
您有一个Loaded
和一个Shown
事件可供选择。
Windows 是事件驱动的,因此永远不要等待循环中的某些内容。