c#如何在线程中给窗体添加控件?求高手解决,小妹谢谢了

c#如何在线程中给窗体添加控件?求高手解决,小妹谢谢了,第1张

线程中调用窗体的Invoke函数,就可以了。Invoke函数可以强制由UI线程执行代码,可以绕过.net对于跨线程的UI *** 作的限制。它接受的是一个委托,你只要把添加控件的函数放进这个委托里,就可以了。

用Control.Invoke()方法:

Form1里加上如下内容

public delegate void AddListItem(String myString)

public AddListItem myDelegate

public Form1()

{

myDelegate = new AddListItem(AddListItemMethod)

}

public void AddListItemMethod(String myString)

{

myListBox.Items.Add(myString)

}

Test类加如下代码:

Form1 myForm

public Test(Form1 form)

{

myForm = form

}

public void CreateList()

{

myForm.Invoke(myFormControl1.myDelegate,new Object[] {"数据"})

}

原理就是这样,具体实现你自已修改吧

Thread的start方法可以带参数,把窗体的控件当作参数传给start,然后在Thread的运行函数里获取这个参数,不过不推荐在其他线程里 *** 作界面,具体参考:http://msdn.microsoft.com/zh-cn/library/system.threading.thread.aspx


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11383583.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存