读书人

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

发布时间: 2012-11-10 10:48:51 作者: rapoo

在某个线程上创建的控件不能成为在另一个线程上创建的控件的父级
这个问题不是用委托可以搞定吗?为什么我加上了依然会报这个异常?

C# code
private delegate void flush();public void F() {    flush f = new flush(aa);    panel.Invoke(f);}public void aa() {    panel.Controls.Clear();    panel.Controls.Add(panel1);   //报异常}

请问为什么啊?

[解决办法]
http://wenwen.soso.com/z/q232263434.htm
看看这个
[解决办法]
C# code
private delegate void flush();public void F() {    flush f = new flush(aa);    //panel.Invoke(f);    //这里要用主线程去调用    this.Invoke(f);}public void aa() {    panel.Controls.Clear();    panel.Controls.Add(panel1);   //报异常}
[解决办法]
panel1是在什么位置定义的,看起来应该是访问panel1出现的问题
[解决办法]
private delegate void flush();

public void F() {
flush f = new flush(aa);
panel.Invoke(f);
}
public void aa() {
panel.Controls.Clear();
panel.Controls.Add(panel1); //报异常
}
-----------------
pub void aa()函数改为:

public void aa()
{
flush a=new deldegate()
{
panel.Controls.Clear();
panel.Controls.Add(panel1);
}
panel.invoke(a);
}


读书人网 >C#

热点推荐