C# - 更改另一个窗体的标题

C# - Change title of another Form

如何从我的 From 2 更改 Form 1 的标题?这是我的代码:

表格 1:

public void setTitle(string title)
    {
        this.Text = title;
    }

表格 2:

private void buttonOk_Click(object sender, EventArgs e)
    {
        Form1 f1= new Form1();
        f1.setTitle(textBoxTitle.Text);
        this.Hide();
    }

我做错了什么?

您应该拥有当前显示的 Form1 的实际实例。

在显示Form1的同时,在Form2中为其保留一个实例。 (我假设您正在显示 Form2 中的 Form1。如果不是,您应该在创建 Form2 的实例时将 Form1 实例提供给 Form2)

public class Form2 : Form
{
    private Form1 form1;

    private void OpenForm1()
    {
        form1 = new Form1();
        form.Show()
    }
}

然后,在该实例上调用 setTitle():

private void buttonOk_Click(object sender, EventArgs e)
{
    form1.setTitle(textBoxTitle.Text);
    this.Hide();
}

您应该将 Form1 作为参数传递给 Form2 的构造函数。

Form1 Form_one;

public Form2(Form1 form1):this()
{
  Form_one = form1;
}

private void buttonOk_Click(object sender, EventArgs e)
{
 Form_one.setTitle(textBoxTitle.Text);
 this.Hide();
}

在您要显示 Form2 的方法中,您应该这样调用;

Form2(this).Show();