我有两种形式。我需要用按钮打开第二个表单。当我打开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;
然而,我尝试的方式再次无效。 这些方法有什么问题?
答案 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
的实例并将其用于Show
或Hide
。
答案 2 :(得分:1)
如果您显示如下所示的form2:
,则可以通过所有者属性从Form2访问Form1form2.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();
}