Winforms切换窗体

13

我现在正在使用winforms。 我有一个名为"form1"的主窗体,还有一个按钮可以打开"form2"。 当我打开"form2"时,我希望"form1"消失。当用户单击"form2"上的x按钮时,我希望它关闭并返回到"form1"。我不想使用模态窗口。

2个回答

27
    private void button1_Click(object sender, EventArgs e) {
        var frm = new Form2();
        frm.Location = this.Location;
        frm.StartPosition = FormStartPosition.Manual;
        frm.FormClosing += delegate { this.Show(); };
        frm.Show();
        this.Hide();
    }

1
很不错,到目前为止我一直在使用 owner 属性,但这个方法就可以了,而且更容易。 - Adnan Bhatti

2
为了不改变窗体的属性,只需在Form1.cs代码中使用ShowDialog()方法打开Form2。这将使Form1无效:
void OpenSecondForm()
{
  Form form2 = new Form();
  form2.ShowDialog();
}

我认为这里有个错别字。sb Form form2 = new form2(); - pat capozzi
Pat是对的,所以任何使用这个例子的人都应该记住这一点。 - Mark Townsend

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接