3

在我的 Visual C# 程序中,我有 2 个表单调用Form1& Form2

Form1有一个按钮调用btnfrm1Form2一个按钮调用btnfrm2

我需要我的程序做的是:-

当我按下btnfrm1它需要打开Form2并隐藏Form1& 当我按下btnfrm2它需要Form1再次显示并关闭Form2.

我为btnfrm1点击事件编码的是这个

Form2 frm2= new Form2();
frm2.Show();
this.Hide();

但我不知道在Form2's btnfrm2单击事件中写什么以使 Form2 消失并重新出现 Form1。

有人能帮我吗?我感谢的任何帮助

4

3 回答 3

2

试试下面的代码

Form1 frm1 = (Form1)Application.OpenForms["Form1"];
frm1.Show();
this.Close();
于 2014-10-09T17:52:09.183 回答
1

您需要真正查看MdiParent,这将创建一个父应用程序。然后所有子表单将出现在父表单中。因此,在您的初始阶段form,您执行以下操作:

  • MdiContainer应设置为true

它将与 , 结合使用MenuStrip,以像传统应用程序一样工作:

Child form = new Child();
form.Parent = this;
form.ShowDialog();

这样你就可以做到这一点。如果您采用您的方法,您应该使用Close而不是Hide自动使用它Close并允许您重新打开。你可以去这个答案,我真的很详细,只是忽略关于树视图的第二部分。

于 2014-10-09T17:52:25.787 回答
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();
    }
}
于 2014-10-09T17:53:58.240 回答