在我的Visual C#程序中,我有两个表单Form1
& Form2
。
Form1
有一个按键通话btnfrm1
,Form2
有一个按键通话btnfrm2
。
我需要我的程序做的是: -
当我按下btnfrm1
时,需要打开Form2
并隐藏Form1
&当我按btnfrm2
时,它需要再次显示Form1
并关闭Form2
。
我为btnfrm1
点击事件编码的是
Form2 frm2= new Form2();
frm2.Show();
this.Hide();
但我不知道在Form2's btnfrm2
点击事件中要写什么来使Form2消失而Form1重新出现。
有人能帮助我吗? 我欣赏的任何帮助
答案 0 :(得分:2)
尝试以下代码
Form1 frm1 = (Form1)Application.OpenForms["Form1"];
frm1.Show();
this.Close();
答案 1 :(得分:1)
您需要实际查看MdiParent
,这将创建一个父应用程序。然后,所有子表单都将出现在父表单中。因此,在您的初始form
中,您可以执行以下操作:
MdiContainer
应设为true
。它将与MenuStrip
结合使用,就像传统的应用程序一样:
Child form = new Child();
form.Parent = this;
form.ShowDialog();
这样你就可以做到这一点。如果您采用自己的方法,则应使用Close
而非Hide
自动Close
,并允许您重新打开。您可以转到这个答案,我真的进入了很多detail,只是忽略了关于树视图的第二部分。
答案 2 :(得分:1)
您的辅助表格需要了解您的主要表格。
public class Form1
{
private Form2 _form2;
public void ShowForm2()
{
if(_form2 == null)
{
_form2 = new Form2();
_form2.Bind(this);
}
this.Hide();
_form2.Show();
}
}
public class Form2
{
private Form1 _form1;
public void Bind(Form1 form1)
{
_form1 = form1;
}
public void ShowForm1()
{
this.Hide();
_form1.Show();
}
}