【发布时间】:2019-11-12 05:08:26
【问题描述】:
在我的 C# winForms 中添加一个事件FormClosing,但添加代码Close() 后对话框不断弹出
private void AdminPanel_FormClosing(object sender, FormClosingEventArgs e)
{
DialogResult result = (MessageBox.Show(this,
"Are you sure you want to close the Application?",
"Exit",
MessageBoxButtons.YesNo, MessageBoxIcon.Question));
if (result == DialogResult.Yes)
{
//dialog keeps poping up when i try to close the form
Close();
}
else {
e.Cancel = true;
}
}
【问题讨论】:
-
好的,所以这感觉像是一个 XY 问题 - meta.stackexchange.com/questions/66377/what-is-the-xy-problem。您真正的问题是“为什么关闭表单不会使我的应用程序进程停止运行?”?
-
表单是应用程序的主表单吗?是否有线程或其他东西阻止应用程序关闭?
-
如果你能分享一个minimal reproducible example(包括如何调用表单)那就太棒了,这样我们就可以在最后重现这个问题。
-
我已经尝试了这两个答案,我还像@Olivier Rogier 所说的那样在
formClosed中添加了Environment.Exit(0);。并且正常工作。这解决了问题 -
Environment.Exit肯定是一个有效的选项 - 但在 95% 的情况下,它的使用并不是最佳选择,因为这意味着您在其他地方犯了错误。如果您分享minimal reproducible example,我们可以确认这一点。