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

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。
请问应该怎么改

------解决方案--------------------
在主线程里定义个个委托。
在你的类里定义个委托变量,在主线程里为你这个类的委托变量赋值。
然后在你的类里调用这个委托就可以了。