在某个线程上创建的控件不能成为在另一个线程上创建的控件的父级

C#Winform中主线程中的一个控件panel,子线程中要执行panel.controls.add方法,提示“在某个线程上创建的控件不能成为在另一个线程上创建的控件的父... C#Winform中主线程中的一个控件panel,子线程中要执行panel.controls.add方法,提示“在某个线程上创建的控件不能成为在另一个线程上创建的控件的父级”于是我就用采用委托和Invoke,但是问题仍然存在,应该如何解决呢? 展开
 我来答
婷2489
2014-06-22 · 超过66用户采纳过TA的回答
知道答主
回答量:194
采纳率:100%
帮助的人:66.7万
展开全部
我试了一下,我这种方法是可以添加的,不过也是委托给主线程的。如果添加的比较慢的话,界面是会卡的。 public delegate void dAdd(); public dAdd myAdd; private void button1_Click(object sender, EventArgs e) { Thread t = new Thread(a); t.Start(); } public void a() { myAdd = new dAdd(add); panel1.Invoke(myAdd); } private void add() { RadioButton rb = new RadioButton(); rb.Text = "添加"; panel1.Controls.Add(rb); panel1.Refresh(); }
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式