我有两个表单,并且我已经将它链接起来,这样当第二个表单关闭时,第一个也关闭(使用 FormClosing 方法)。
问题在于,当我希望隐藏第二个表单时,它会自动关闭第一个表单。有没有一种方法可以在不实际调用 FormClosing 方法的情况下隐藏表单?
当使用“Visible = false”和“Hide()”时,似乎仍会调用 FormClosing 方法。
谢谢。
我有两个表单,并且我已经将它链接起来,这样当第二个表单关闭时,第一个也关闭(使用 FormClosing 方法)。
问题在于,当我希望隐藏第二个表单时,它会自动关闭第一个表单。有没有一种方法可以在不实际调用 FormClosing 方法的情况下隐藏表单?
当使用“Visible = false”和“Hide()”时,似乎仍会调用 FormClosing 方法。
谢谢。
调用Hide()
表单 or Visible=false
,但在这种情况下,表单保留在内存中,并且该表单分配的所有资源都保留在内存中。
如果这对您来说是个问题,我建议您修改您的架构。
我更改了我的程序,使其按如下方式启动:
MainForm mainForm = new MainForm();
mainForm.Show();
Application.Run();
代替:
Application.Run(new MainForm());
在每个表单中,我添加了一个 FormClosing 事件,用于检查用户是否选择关闭应用程序。如果是这种情况,则会向用户显示一个提示,要求他们确认:
private void ImageSelect_FormClosing(object sender, FormClosingEventArgs e)
{
if (e.CloseReason == CloseReason.UserClosing)
{
if (DialogResult.No == MessageBox.Show("Are you sure you wish to exit?", "Exit Confirmation", MessageBoxButtons.YesNo))
e.Cancel = true;
else { Application.Exit(); }
}
}
现在可以从应用程序中的任何形式关闭应用程序。
你想用form.Hide()
.
这只是向用户隐藏了表单,而没有实际关闭它。
this.Hide();
或者
this.Visible = false;
如果您使用 WinForms 表单,则Hide()方法应该是您正在寻找的方法。