问题描述
WinForm在使用如下代码块时出现异常:System.InvalidOperationException:“在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke。”
网上的方法试了很多都不能解决
使用场景:
this.Invoke(new MethodInvoker(() =>
{
dataGridView1.DataSource = dataTable;
}));
异常信息:
原因分析:
后来发现是因为把含有this.Invoke(new MethodInvoker(() =>{ }));代码块的方法写在了构造方法中调用了导致的,在初始化完成之前 ,句柄还未创建。导致异常,
解决方案:
将含有this.Invoke(new MethodInvoker(() =>{ }));代码块的方法放在窗体加载方法中调用就可以了