form2里定义delegate
public delegate void ChangeHandel();
public event ChangeHandel ChangeEvent;
private void Button1_Click(object sender, EventArgs e)
{
if (ChangeEvent!= null)
ChangeEvent();
}form1里new Form2
Form2 frm = new Form2();
frm.ChangeEvent += new ChangeHandel(your_event);private void your_event()
{
//lab.text }
public delegate void ChangeHandel();
public event ChangeHandel ChangeEvent;
private void Button1_Click(object sender, EventArgs e)
{
if (ChangeEvent!= null)
ChangeEvent();
}form1里new Form2
Form2 frm = new Form2();
frm.ChangeEvent += new ChangeHandel(your_event);private void your_event()
{
//lab.text }
http://blog.csdn.net/tjvictor/archive/2006/06/23/824617.aspx
在Form2中建一个Public属性FRM1
Form2 frm2 = new Form2();
frm2.FRM1 = this;
然后面Form2中你就可以写FRM1.label1.Text = "gogogogo";
既然form1中的lable又被别人修改的必要,那就在form1中
公开一个修改lable的方法,然后交由form2来调用就可以了.form2最好不要知道form1中有什么样的lable.
定义一个操作form1的label的接口
inteface void setLabel(string pamStrName);
在from1中实现接口,
在from1中new from2(this);
然后在form2的构造方法里写入public form2(接口名 pamFrm) {};
谢谢LZ让我有机会真正理解委托
谢谢maotin,让我真正的理解了委托!!!
或者 form1提供一个修改label的text的函数