通常定义的指定委托的时候是这样的...
Form2 form2 = new Form2();
form2.委托 = this.方法;
这时就可以在Form2里及时影响Form1啦...
现在,可以在Form2里动态指定委托到Form1里的方法,调用Form1里对应的方法,这是可以的..
但是,如果该方法是更改Form1的某个属性时,就不行啦...
比如: class Form1
{
....
private void Change(string tempString)
{
MessageBox.Show(tempString);
}//如果Form2里的委托指定的form1里方法是这个...可以..
........
} class Form1
{
....
private void Change(string tempString)
{
this.Label1.Text = tempString;
}//如果form2里的委托指定的form1里的方法(用反射)是这个...则没有反应(因为反射中的实例和已经生成form1是两个实例..
........
} 该怎么解决这个问题啊?
Form2 form2 = new Form2();
form2.委托 = this.方法;
这时就可以在Form2里及时影响Form1啦...
现在,可以在Form2里动态指定委托到Form1里的方法,调用Form1里对应的方法,这是可以的..
但是,如果该方法是更改Form1的某个属性时,就不行啦...
比如: class Form1
{
....
private void Change(string tempString)
{
MessageBox.Show(tempString);
}//如果Form2里的委托指定的form1里方法是这个...可以..
........
} class Form1
{
....
private void Change(string tempString)
{
this.Label1.Text = tempString;
}//如果form2里的委托指定的form1里的方法(用反射)是这个...则没有反应(因为反射中的实例和已经生成form1是两个实例..
........
} 该怎么解决这个问题啊?
CreateDelegate的第二个参数需要指定this指针