Winforms 在主窗体退出时关闭窗体而不弹出窗口(阻止弹出窗口并强制关闭其他窗体)

Winforms 在主窗体退出时关闭窗体而不弹出窗口(阻止弹出窗口并强制关闭其他窗体),winforms,Winforms,如果这个问题是重复的,请接受我的道歉。我搜索了现有的问题和解决方案,但没有找到问题的确切解决方案 我正在开发winform应用程序,我有一个主form1,它创建form2。Form2有close按钮和Overiden FormClosing()方法来提示确认弹出窗口,效果非常好 当我想关闭form1(这是主应用程序线程)和所有其他表单时,比如form1创建的form2、form3,而不实际提示form2、form3的确认弹出窗口。基本上,当关闭form1时,它应该强制关闭form1中显示的所有其

如果这个问题是重复的,请接受我的道歉。我搜索了现有的问题和解决方案,但没有找到问题的确切解决方案

我正在开发winform应用程序,我有一个主form1,它创建form2。Form2有close按钮和Overiden FormClosing()方法来提示确认弹出窗口,效果非常好

当我想关闭form1(这是主应用程序线程)和所有其他表单时,比如form1创建的form2、form3,而不实际提示form2、form3的确认弹出窗口。基本上,当关闭form1时,它应该强制关闭form1中显示的所有其他表单,现在它会在退出应用程序之前显示form2、form3的所有确认弹出窗口

谢谢你的回复, 当做
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?