[英]How to show a form again after hiding it?
我有两个 forms。我需要用一个按钮打开第二个表单。 当我打开 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;
但是我尝试的方式再次不起作用。 这些方式有什么问题?
你可以试试(点击Form1按钮)
Hide();
Form2 form2 = new Form2();
form2.ShowDialog();
form2 = null;
Show();
或(它应该工作)
Hide();
using (Form2 form2 = new Form2())
form2.ShowDialog();
Show();
保留Form1
的实例并将其用于Show
或Hide
。
如果您显示如下所示的form2,则可以通过Owner属性从Form2访问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();
}
FormCollection frm = Application.OpenForms;
foreach(Form f in frm)
{
if(f.Name=="yourformname")
{
f.Show();
this.Close();
this.Dispose();
return;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.