您好我在c#中做了一个简单的活动。我想使用按钮打开一个新的form2,当我按下该按钮时,form1将自动关闭。这是我的代码:
Form2 form2 = new Form2();
form2.ShowDialog();
this.Close();
现在我不知道我将使用什么方法自动关闭form1。谢谢..
答案 0 :(得分:4)
无法正常工作,因为代码控件将暂停form2.ShowDialog();
。
您必须以非模态方式显示form2:
Form2 form2 = new Form2();
form2.Show();
this.Close();
或者我猜你可以通过隐藏表单来伪造它:
Form2 form2 = new Form2();
this.Visible = false;
form2.Show();
this.Visible = true;
尝试两个版本,看看哪种情况更好。调用ShowDialog();
会将表单显示为Modal,导致所有用户鼠标/键盘输入限制为form2,直到您关闭它。
编辑:必须将Form2声明为成员变量,如果在按钮事件中进行了十分转换,它将超出范围。
Form2 form2 = new Form2();
private void btnOK_Click(object sender, EventArgs e)
{
this.Visible = false;
form2.Show();
this.Visible = true;
}
答案 1 :(得分:3)
而不是使用this.Close();
使用this.Hide()
和Form2
的formclosing事件,而不是form1.Show()
。
有关详细信息,请查看此link(之前我问过这个问题)。