隐藏后如何再次显示表单?

时间:2012-11-05 13:49:12

标签: c# winforms forms minimize maximize-window

我有两种形式。我需要用按钮打开第二个表单。当我打开form2时,我隐藏了form1。但是,当我尝试使用按钮从form2再次显示form1时,它不起作用。我的form1代码是:

Form2 form2 = new Form2();        
form2.ShowDialog();

在form2代码中:

Form1.ActiveForm.ShowDialog();

Form1.ActiveForm.Show();

form1.show(); (form1 doesn't exist in the current context)

不起作用。 我不想打开新表格

Form1 form1 = new Form1();   
form1.ShowDialog();

我希望展示我之前隐藏的形式。 或者,我可以将其最小化到任务栏

this.WindowState = FormWindowState.Minimized;

并再次从form2中最大化它。

Form2.ActiveForm.WindowState = FormWindowState.Maximized;

然而,我尝试的方式再次无效。 这些方法有什么问题?

4 个答案:

答案 0 :(得分:7)

您可以尝试(在Form1按钮上单击)

Hide();
Form2 form2 = new Form2();        
form2.ShowDialog();
form2 = null;
Show();

或(它应该有效)

Hide();
using (Form2 form2 = new Form2())       
    form2.ShowDialog();
Show();

答案 1 :(得分:2)

保留Form1的实例并将其用于ShowHide

答案 2 :(得分:1)

如果您显示如下所示的form2:

,则可以通过所有者属性从Form2访问Form1
form2.ShowDialog( form1 )

或者像这样:

 form2.Show( form1 )

请注意,您不必使用ShowDialog导致隐藏,并且可以在Form2中移动显示逻辑

答案 3 :(得分:0)

这种方法是我发现最适合我的方法

主要表格

Form2 form2 = new Form2(this);

中学表格

private Form Form1
public Form2(Form Form1)
{
    InitializeComponent();
    this.Form1 = Form1;
    Form1.Hide();
}

稍后关闭时

private void btnClose_Click(object sender, EventArgs e)
{
    Form1.Show();
    this.Close();
}