我有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();
}
答案 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();