在Winforms应用程序中,当用户关闭该应用程序以提示他或她保存数据时,我会显示一个MessageBox
。通过任务管理器关闭应用程序时,不应出现此对话框,因为无论如何都应强制关闭应用程序。但是,我遇到一个问题,在任务管理器关闭应用程序之前,我的警告对话框将在屏幕上闪烁。我曾尝试在e.CloseReason
中检查FormClosingEventHandler
,但无济于事。我什至制作了一个简单的项目来演示该问题(这实际上是我所拥有的唯一代码)。
private void Form1_Closing(object sender, FormClosingEventArgs e)
{
switch (e.CloseReason)
{
case CloseReason.UserClosing:
MessageBox.Show("User");
break;
case CloseReason.TaskManagerClosing:
MessageBox.Show("Task Manager");
break;
default:
MessageBox.Show("Other");
break;
}
}
当我通过任务管理器>结束任务杀死该应用程序时,将弹出“用户”消息,而不是“任务管理器”!我已经看到很多有关处理此事件的帖子;但是,它们似乎都无法解决我的问题。
注意:我正在使用.Net版本4.6.01586和Windows 10。