C# 隐藏 form2 并在不覆盖的情况下重新打开它

C# hide form2 and reopen it without override

你好, 我有 2 种形式:form1form2。 当我按下 form1 中的按钮时,我想打开 form2 并且 form1 仍然可见。

form1 中的代码:

private void button_Click_1(object sender, EventArgs e) 
{
 form2 form = new form2();   
 form.Show();
}

当我在 form2 中按 [x](关闭按钮)时,我想隐藏它。

form2 中的代码:

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
    if (e.CloseReason == CloseReason.UserClosing) 
    {
        e.Cancel = true;
        Hide();
    }
}

问题是当我再次按下 form1 中的按钮 1 时。它会打开 form2,但就像它没有被隐藏一样,它会像第一次一样打开它。我不想关闭 form2,因为它是一个计时器,在隐藏表单时正在计时。我如何在按下 [x] 时隐藏 form2,然后再次按下 button1 重新出现,而不是像第一次那样重新打开? 谢谢!

当您编写 form2 form = new form2() 时,您会创建它的另一个实例,因此您必须保存该实例并使用相同的实例:

private Form form;
private void button_Click_1(object sender, EventArgs e)
{
     if(form==null)
         form = new Form2();

     form.Show();
}