如何关闭主窗体,而不关闭其他窗体
本文关键字:窗体 其他 何关闭 | 更新日期: 2023-09-27 17:57:58
所以,我正在写一个Hangman,在MainForm中,你必须选择是玩单人游戏还是多人游戏。当我选择我想要的一个时,这个MainForm应该关闭(我使用this.close())并触发另一个Form,但整个程序会关闭。
private void button2_Click(object sender, EventArgs e)
{
Form f2 = new Form1();
f2.Show();
this.Close();
}
如果在Programs.cs中,我修改代码如下:
Form f4 = new Form4();
f4.Show();
Application.Run();
一切都很顺利,但如果我不使用Application.exit()退出程序,它仍将在后台运行。
那么,我该如何解决这个问题呢?
您不能关闭父窗体并保持子窗体的活力
使用this.Hide()
而不是this.Close()
然后在Form2_FormClosed
事件上,您可以执行Application.Exit()
或者您甚至可以再次显示MainForm。
OR:
Form2 f2 = new Form2();
this.Visible = false;
f2.ShowDialog();
this.Close();
如果你想要一个基本的表单,它几乎只允许用户玩,直到他们关闭另一个表单,然后关闭这个表单,请使用这个:
private void button2_Click(object sender, EventArgs e)
{
Form f2 = new Form1();
this.Hide();
f2.ShowDialog();
this.Close();
}
或者,如果用户选择了不想玩另一个游戏或更改难度设置之类的内容,则可以关闭表单。你可以这样做:
private void button2_Click(object sender, EventArgs e)
{
Form f2 = new Form1();
this.Hide();
if(f2.ShowDialog() == DialogResult.OK)
{
this.Show();
}
else
{
this.Close();
}
}
您可以在ApplicationRun(new MainForm())之前显示(对话框)您的表单,这样您就不需要关闭MainForm