当前位置: 代码迷 >> C# >> c# 在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke。解决办法
  详细解决方案

c# 在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke。解决办法

热度:117   发布时间:2016-05-05 04:06:07.0
c# 在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke。
Form_main frm = new Form_main();
frm.Invoke(new MethodInvoker(delegate()
                    {
                        //do something...

                        frm.imageList1.Images.Add("text", ico);
                        ListViewItem item = new ListViewItem        ("111", "text");
                        frm.listView1.Items.Add(item);

                    }));

这是在另一个类中的一个非主线程调用form_main窗口控件的代码,提示出错!
 在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke。
请问应该怎么改
------解决思路----------------------
在主线程里定义个个委托。
在你的类里定义个委托变量,在主线程里为你这个类的委托变量赋值。
然后在你的类里调用这个委托就可以了。
  相关解决方案