第一次用委托简直晕死,真心求助!!!!!编译通过但没结果,下面分别是FORM1和FORM2的代码,其中FORM1有个按钮弹出FORM2,再点FORM2的按钮去改变FORM1按钮的颜色。还有我想请教要实现此操作用“委托”的方法和用“委托+INVOKE”的方法有什么区别,和线程有什么关系????如果用INVOKE的方法该怎么改????给大家添麻烦了,感谢!!!!!!FORM1中:
public partial class Form1 : Form
{
Form2 f2=new Form2(); public Form1()
{
InitializeComponent();
f2.wtbianliang += new Form2.weituo(zhixingshijian); /////
}
private void zhixingshijian()
{
button1.BackColor = Color.Red;//怎么改了没反应啊??
}
private void button1_Click(object sender, EventArgs e)
{ f2.Show();
}
private void Form1_Load(object sender, EventArgs e)
{
}
}
FORM2中:
public partial class Form2 : Form
{
public delegate void weituo();//建立委托
public event weituo wtbianliang;//委托变量
public void chufa()
{
if (this.wtbianliang != null)
{
this.wtbianliang();
}
} public Form2()
{
InitializeComponent();
}
private void Form2_Load(object sender, EventArgs e)
{
}
}
public partial class Form1 : Form
{
Form2 f2=new Form2(); public Form1()
{
InitializeComponent();
f2.wtbianliang += new Form2.weituo(zhixingshijian); /////
}
private void zhixingshijian()
{
button1.BackColor = Color.Red;//怎么改了没反应啊??
}
private void button1_Click(object sender, EventArgs e)
{ f2.Show();
}
private void Form1_Load(object sender, EventArgs e)
{
}
}
FORM2中:
public partial class Form2 : Form
{
public delegate void weituo();//建立委托
public event weituo wtbianliang;//委托变量
public void chufa()
{
if (this.wtbianliang != null)
{
this.wtbianliang();
}
} public Form2()
{
InitializeComponent();
}
private void Form2_Load(object sender, EventArgs e)
{
}
}
{
Form2 f2=new Form2();
f2.wtbianliang += new Form2.weituo(zhixingshijian);
f2.Show();
}另外我没有看到你Form2谁在调用chufa()这个方法
那么“委托+INVOKE”方法是怎么用的 ,和我现在这种方法有什么区别啊,谢谢您了!!!!!
重点是委托+BeginInvoke方法,它允许你异步执行一个委托,并可以设置当委托执行完成后执行的完成事件。