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

C# 隐藏表单后如何再次显示表单?,c#,winforms,forms,minimize,maximize-window,C#,Winforms,Forms,Minimize,Maximize Window,我有两张表格。我需要用按钮打开第二张表格。当我打开form2时,我会隐藏form1。但是,当我尝试用按钮从form2再次显示form1时,它不起作用。我的form1代码是: Form2 form2 = new Form2(); form2.ShowDialog(); 内表2代码: Form1.ActiveForm.ShowDialog(); 或 或 不起作用。 我不想打开新表格 Form1 form1 = new Form1(); form1.ShowDialog();

我有两张表格。我需要用按钮打开第二张表格。当我打开form2时,我会隐藏form1。但是,当我尝试用按钮从form2再次显示form1时,它不起作用。我的form1代码是:

Form2 form2 = new Form2();        
form2.ShowDialog();
内表2代码:

Form1.ActiveForm.ShowDialog();

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

Form1 form1 = new Form1();   
form1.ShowDialog();
我想展示我以前隐藏的表格。 或者,我可以将其最小化到任务栏

this.WindowState = FormWindowState.Minimized;
并再次将其从form2中最大化

Form2.ActiveForm.WindowState = FormWindowState.Maximized;
然而,我尝试的方式是再次不起作用。 这些方法有什么问题?

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

或者(应该有效)


保留
Form1
的实例,并将其用于
显示
隐藏

如果您这样显示Form2,则可以通过Owner属性从Form2访问Form1:

form2.ShowDialog( form1 )
 form2.Show( form1 )
或者像这样:

form2.ShowDialog( form1 )
 form2.Show( form1 )

注意,通过这种方式,您不必使用ShowDialog,因为隐藏和显示逻辑可以在Form2中移动

初级形式

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();
}

非常感谢你。添加hide();show();解决了我的问题。
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();
}