C#如果有3个表格,我可以显示Form3并关闭Form1和Form2吗?

时间:2014-03-17 09:17:27

标签: c# winforms

我有3张表格。我想在 Form2 中单击按钮时显示 Form3 并关闭 Form1,Form2 。这是我的代码。当我运行此代码时,它可以显示 Form3 但不关闭 Form1

Form1中

private void button1_Click(object sender, EventArgs e)
{
    Form2 frm2 = new Form2();
    frm2.ShowDialog();
    //frm2.Show();
}

窗体2

private void button1_Click(object sender, EventArgs e)
{
    Form3 frm3 = new Form3();
    Form1 frm1 = new Form1();
    frm3.Show();

    frm1.Hide();  // It not close Form1
    this.Hide();
    // frm1.Close();
    // this.Close();
}

1 个答案:

答案 0 :(得分:6)

问题:您正在创建Form1的新实例,然后尝试关闭/隐藏它。

解决方案:您需要获取已在内存中的Form1实例,然后隐藏或关闭它。

替换它:

Form1 frm1 = new Form1();
frm1.Hide();  // It not close Form1

有了这个:

Form1 form1 = (Form1) Application.OpenForms["Form1"];
Form3 frm3 = new Form3();
frm3.Show();   
form1.Hide();