如何在Form2上使用按钮打开时更改Form1.Text

我有2个表单,我希望在Form2上使用按钮运行时更改Form1.Text !!!! 我不打算做一个Form1实例。 谢谢朋友**

public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Form2 F2 = new Form2(); F2.ShowDialog(); } } public partial class Form2 : Form { public Form2() { InitializeComponent(); } private void ChangeForm1Text_Click(object sender, EventArgs e) { Form1 } } 

在这种特殊情况下(您需要对所有者表单的引用),有一个简单的shorcut,不需要保留第一个表单的本地实例

只需在ShowDialog调用中将Form1的实例作为所有者传递即可

 private void button1_Click(object sender, EventArgs e) { Form2 F2 = new Form2(); F2.ShowDialog(this); } 

现在,您可以在Form2代码中引用属性所有者

 private void ChangeForm1Text_Click(object sender, EventArgs e) { this.Owner.Text = "your new caption for form1"; } 

一种可行的方法是将Form1的实例传递给Form2`上的构造函数。 所以将此构造函数和字段添加到Form2:

 private readonly Form1 _parentForm1; public Form2(Form1 parentForm1) : this() { _parentForm1 = parentForm1; } 

现在,当您在按钮单击中创建Form2时,请按以下方式创建它:

 Form2 F2 = new Form2(this); F2.ShowDialog(); 

然后,您可以在Form2的实例中的任何位置使用_parentForm1来引用回另一个表单。