在某个线程上创建的控件不能成为在另一个线程上创建的控件的父级
C#Winform中主线程中的一个控件panel,子线程中要执行panel.controls.add方法,提示“在某个线程上创建的控件不能成为在另一个线程上创建的控件的父...
C#Winform中主线程中的一个控件panel,子线程中要执行panel.controls.add方法,提示“在某个线程上创建的控件不能成为在另一个线程上创建的控件的父级”于是我就用采用委托和Invoke,但是问题仍然存在,应该如何解决呢?
展开
展开全部
我试了一下,我这种方法是可以添加的,不过也是委托给主线程的。如果添加的比较慢的话,界面是会卡的。 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(); }
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询