我有两个表单,我将它们链接起来,这样当第二个表单关闭时,第一个表单也会关闭(使用FormClosing方法)。
这样做的问题是,当我想隐藏第二个表单时,它会自动关闭第一个表单。是否有一种方法可以在不实际调用FormClosing方法的情况下隐藏窗体?
当使用"Visible = false“和”FormClosing ()“时,隐藏方法似乎仍然被调用。
谢谢。
发布于 2012-02-22 22:00:52
我更改了我的程序,使其按如下方式启动:
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(); }
}
}现在可以从应用程序中的任何表单关闭应用程序。
发布于 2012-02-15 20:31:28
在form或Visible=false上调用Hide(),但考虑到在这种情况下,form保留在内存中,该form分配的所有资源都保留在内存中。
如果这对你来说是一个问题,我会建议修改你的架构。
发布于 2012-02-15 20:33:40
您想要使用form.Hide()。
这只是对用户隐藏了表单,而没有实际关闭它。
https://stackoverflow.com/questions/9293391
复制相似问题