Closing Parent without closing child
我有一个项目,其中会弹出一个设置对话框(父级)。当用户点击继续时,会打开一个主对话框(子级)。
从主对话框中,用户可以重新编辑设置对话框(父)。当用户单击 X 关闭设置对话框时,应用程序终止。
我认为这是因为我们关闭了 Parent 并且它处理了它的所有子
是否可以在不关闭主对话框(子)的情况下关闭父(或隐藏它)?
如果没有,以下修复会起作用吗?
以父级身份打开主对话框并使其打开设置对话框(子级)
在
1 2 3 4 5 6 | static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } |
此函数是您的应用程序的入口点。
要解决这个问题,你需要去掉这个参数,这将使主循环在窗体关闭时运行而不关闭: 但是,这会产生两个问题:
2
3
4
5
6
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run();
}
启动时不显示表单,因为我们从
1 2 3 4 5 6 7 8 9 10 | static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Form1 form = new Form1(); form.Show(); Application.Run(); } |
当您关闭表单时,应用程序不会退出。如果您关闭所有表单,该进程仍将运行,因此您需要在希望应用程序退出时调用
或者,你无法理解模态窗口没有父窗口就无法生存。当父级最小化时,所有的模态表单都被隐藏了。当父级关闭时,模态表单也会发生同样的情况。
因此,在父母去世后欺骗模型表单以保持活力是一种不好的做法。尽量保持第二个形式与第一个形式相同的模式。