我想在form2中更改form1中label控件的内容。我是这么写的在form1中
private void button1_Click(object sender, EventArgs e)
{
Form2 pForm2 = new Form2();
pForm2.Show();
}
在form2中
private void button1_Click(object sender, EventArgs e)
{
Form1 pForm1 = new Form1();
pForm1.label1.Text = "This is Form1";
}
其中form1中label的modified属性设置为public了。可是label的text属性没有反应,怎么回事???
private void button1_Click(object sender, EventArgs e)
{
Form2 pForm2 = new Form2();
pForm2.Show();
}
在form2中
private void button1_Click(object sender, EventArgs e)
{
Form1 pForm1 = new Form1();
pForm1.label1.Text = "This is Form1";
}
其中form1中label的modified属性设置为public了。可是label的text属性没有反应,怎么回事???
public Label label1=new Label();Form1这么定义
在form1中
private void button1_Click(object sender, EventArgs e)
{
Form2 pForm2 = new Form2(this);//重构Form2构造函数
pForm2.Show();
}
在form2中
Form1 pForm1;
public Form2(Form1 form)
{
pForm1=form;
} private void button1_Click(object sender, EventArgs e)
{
pForm1.label1.Text = "This is Form1";
}
Form1 pForm1 = new Form1();
pForm1.label1.Text = "This is Form1"; 这样写是又重新生成了一个Form1的实例, 修改的是新实例中的Label1中的Text属性,原来的当然不变了。
2.在form2中对外开放事件,form1注册
public void MyDelegate(String text);
public Event MyDelegate MyEvent;
在form2中
private void button1_Click(object sender, EventArgs e)
{
if(MyEvent!=null)
{
MyEvent("This is Form1");
}
}在form1中
private void button1_Click(object sender, EventArgs e)
{
Form2 pForm2 = new Form2();
pForm2.MyEvent+=new Form2.MyDelegate(ChangeText);
pForm2.Show();
}
private void ChangeText(String text)
{
this.label1.Text = "This is Form1";
}
改为public delegate void MyDelegate(String text);