Form控件上调用Invoke方法时的问题 你可以在FORM_LOAD中执行这个吧 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你可能在FORM_LOAD中执行这个吧 是说在Form_Load中之行?还是不应该在Form_Load中之行? 没有用啊,虽然参数传的没有问题,但是还是没有办法在类a(Form1的listbox)上显示出来,只要通过别的类调用Class A(Form1) 里面的listbox.Items.Add("..."),Form1的listbox就显示不出来这个内容:(于是想到用Invoke,可是又出了这个错误:( 线程之间通讯的问题。你可以设置一个public static string classAListBoxMessage{ set{ //设置A中listBox1,可能listBox1也需要设置成static }}在B中给这个属性付值就可以了。确定:只能有一个的A的实例 如果你能确保Class A(Form1)就是你显示的那个类实例的引用,也能保证listbox.Items.Add("..."),之后有刷新(winform里面是show,web下就要刷页面了)我就实在理解不了了。要不然你可以先试试跟踪以下看看是不是真的add到listbox[]里去了 public string ListBoxMessage{set{if (this.InvokeRequired){ WatcherChangedEventHandler watcherHandler = new WatcherChangedEventHandler(OnSomethingHappend); object[] message = new object[1]; message[0]=value; this.Invoke(watcherHandler,message);}else{ this.OnSomethingHappend(value);}}试试吧,可能还有问题。最主要的问题是 OnsomethingHappend 这个方法不是 listbox1 的,而是窗体的。你调用错了主人。另外在控件创建完成之前,的确不能进行多线程调用。 Thanks,认真查了一遍代码,发现……嘿嘿,B里面调用的不是A的另外一个实例……Sorry啊,浪费了大家好多精力。不过也学了好多,谢谢!结贴了 为什么用wpf加载winform的datagridview画面很卡? 怎么在oracle中存取图片 C#线程教程 关于局域网文件夹传输的速度问题 大家谈谈jquery在.net中的什么什么吧。。。 :this是做什么用的,去掉好像也可以啊,那留着有啥用啊。 随机插入关键字到文章的不同位置,怎么弄? 更新dataset到数据库的问题? visual c# 和C# builder 那个好? Setup Factory 7.0打包成安装文件发给客户,客户机器上没安装access怎么办? 如何使控件也能本地化 请各位帮我看看,这个SQL该真样写? 急... ....
于是想到用Invoke,可是又出了这个错误:(
线程之间通讯的问题。
你可以设置一个
public static string classAListBoxMessage{
set{
//设置A中listBox1,可能listBox1也需要设置成static
}
}
在B中给这个属性付值就可以了。
确定:只能有一个的A的实例
{
set
{
if (this.InvokeRequired)
{
WatcherChangedEventHandler watcherHandler = new WatcherChangedEventHandler(OnSomethingHappend);
object[] message = new object[1];
message[0]=value;
this.Invoke(watcherHandler,message);
}
else
{
this.OnSomethingHappend(value);
}
}试试吧,可能还有问题。最主要的问题是 OnsomethingHappend 这个方法不是 listbox1 的,而是窗体的。
你调用错了主人。另外在控件创建完成之前,的确不能进行多线程调用。
Sorry啊,浪费了大家好多精力。
不过也学了好多,谢谢!结贴了