Winforms 在主窗体退出时关闭窗体而不弹出窗口(阻止弹出窗口并强制关闭其他窗体)
如果这个问题是重复的,请接受我的道歉。我搜索了现有的问题和解决方案,但没有找到问题的确切解决方案 我正在开发winform应用程序,我有一个主form1,它创建form2。Form2有close按钮和Overiden FormClosing()方法来提示确认弹出窗口,效果非常好 当我想关闭form1(这是主应用程序线程)和所有其他表单时,比如form1创建的form2、form3,而不实际提示form2、form3的确认弹出窗口。基本上,当关闭form1时,它应该强制关闭form1中显示的所有其他表单,现在它会在退出应用程序之前显示form2、form3的所有确认弹出窗口 谢谢你的回复, 当做Winforms 在主窗体退出时关闭窗体而不弹出窗口(阻止弹出窗口并强制关闭其他窗体),winforms,Winforms,如果这个问题是重复的,请接受我的道歉。我搜索了现有的问题和解决方案,但没有找到问题的确切解决方案 我正在开发winform应用程序,我有一个主form1,它创建form2。Form2有close按钮和Overiden FormClosing()方法来提示确认弹出窗口,效果非常好 当我想关闭form1(这是主应用程序线程)和所有其他表单时,比如form1创建的form2、form3,而不实际提示form2、form3的确认弹出窗口。基本上,当关闭form1时,它应该强制关闭form1中显示的所有其
skm您需要注意在FormClosing事件中传递给您的e.CloseReason属性值。仅当e.CloseReason==CloseReason.UserClosing时提示用户。这还可以确保用户关闭Windows时不会显示对话框。例如:
private void Form2_FormClosing(object sender, FormClosingEventArgs e) {
if (e.CloseReason == CloseReason.UserClosing && !saved) {
switch (MessageBox.Show(this, "Save changes?", "Closing",
MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question)) {
case DialogResult.Yes: Save(); break;
case DialogResult.No: break;
case DialogResult.Cancel: e.Cancel = true;
}
}
}
请考虑始终保存更改,这样用户就不会遭受意外的数据丢失。对程序启动时重新打开的临时文件说。如何创建form2?如何关闭form1?