Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 当用Form2上的按钮打开Form1.Text时,我如何更改它_C# - Fatal编程技术网

C# 当用Form2上的按钮打开Form1.Text时,我如何更改它

C# 当用Form2上的按钮打开Form1.Text时,我如何更改它,c#,C#,我有2个表单,我想更改表单1.Text,当它运行时,打开一个按钮 表格2!!!!我没有举一个例子。 谢谢朋友们** public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Form2 F2 = new Form2

我有2个表单,我想更改表单1.Text,当它运行时,打开一个按钮 表格2!!!!我没有举一个例子。 谢谢朋友们**

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

    }
}

一种可能的方法是将
Form1
的实例传递到Form2`上的构造函数中。因此,将此构造函数和字段添加到表单2中:

private readonly Form1 _parentForm1;
public Form2(Form1 parentForm1) : this()
{
    _parentForm1 = parentForm1;
}
现在,当您在按钮单击中创建Form2时,请按如下方式创建它:

Form2 F2 = new Form2(this);
F2.ShowDialog();
然后,您可以在Form2实例中的任何位置使用
\u parentForm1
引用其他表单。

在这种特殊情况下(您需要引用所有者表单),有一个简单的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";

}