从新表单实例中显示此表单

本文关键字:表单 显示 实例 新表单 | 更新日期: 2023-09-27 18:34:51

我使用"添加新项"在C#中创建了两个表单。Form1 是我的默认打开窗体。我使用以下代码切换到 form2:

Form1 class:
    Form form2= new form2();
                this.Hide();
                form2.Show();  

Form2 class:

我应该在这里做什么才能再次打开相同的 Form1,而无需创建 Form1 的新即时?

从新表单实例中显示此表单

您应该将此

实例传递给 form2,并在时机成熟时将其.Show()

一个简单的解决方案可能是以模式显示第二个窗体,然后在第二个窗体关闭时使第一个窗体可见,如下所示:

  public partial class Form1: Form
  {
    public Form1()
    {
      InitializeComponent();
    }
    private void button1_Click(object sender, EventArgs e)
    {
      Form2 form2 = new Form2();
      this.Hide();
      form2.ShowDialog();
      this.Show();
    }
  }
  public partial class Form2: Form
  {
    public Form2()
    {
      InitializeComponent();
    }
    private void button1_Click(object sender, EventArgs e)
    {
      Close();
    }
  }

以非模式方式完成这项工作将作为一种练习:)

当你在做form2.hide((时,你实际上是在隐藏而不是破坏它因此,您创建的实例仍然存在,因此您可以使用它再次显示它

如果你使用 form2.dispose((,那么你必须创建一个新的实例

在 form2 代码隐藏中,在构造函数中添加参数

Form2(Form form1)
{
   //use form1 object here
   //you can declare a variable of Form1 in Form2 and use it everywhere in the scope of form2
}

然后在初始化 form2 的对象时:

Form form2 = new Form(this);
this.Hide();
form2.show();