我有一个MDIParent,我打开了一个子窗口。如果单击按钮,我需要关闭当前父级。所以我尝试了下面的代码
private void button_log_Click(object sender, EventArgs e)
{
MDIParent_Main obj = new MDIParent_Main(textBox_username.Text);
obj.Show();
this.Close();
}
问题是它关闭了MDIParent_Main和子窗体。 我的错误在哪里?
答案 0 :(得分:3)
您遇到的问题是您的MDIParent表单是主要的申请表。当你关闭它时,应用程序正在结束并带有子窗口,请参阅this question以获取更多详细信息。
一旦被广泛接受的解决方案是隐藏父表单,直到孩子也被关闭。孩子关闭后,您可以关闭父母。
// code taken from referenced question
private void btnOpenForm_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2();
frm2.FormClosed += new FormClosedEventHandler(frm2_FormClosed);
frm2.Show();
this.Hide();
}
private void frm2_FormClosed(object sender, FormClosedEventArgs e)
{
this.Close();
}
答案 1 :(得分:0)
你不能那样做。 你必须首先打开mdipather,而不是show()登录表单,而不是在autenticaded时关闭登录表单