C#隐藏form2并重新打开它而不覆盖

时间:2016-05-21 21:28:27

标签: c# forms show-hide

直升机, 我有两种表单: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的button1时。它会打开form2,但就像它没有被隐藏一样,它会像第一次一样打开它。我不想关闭form2,因为它是一个在隐藏表单时计数的计时器。当我按[x]时如何隐藏form2,然后再次按下按钮1重新出现,而不是像第一次那样重新打开? 谢谢!

1 个答案:

答案 0 :(得分:4)

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

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

     form.Show();
}