枚举值解释:
-
None - 无特定原因
-
默认值,表示没有明确的关闭原因或原因未知
-
-
WindowsShutDown - Windows系统关闭
-
当操作系统正在关机或重启时触发
-
这是系统级事件,应用程序通常需要保存数据并快速响应
-
-
MdiFormClosing - MDI父窗体关闭
-
在多文档界面(MDI)应用程序中,当父窗体关闭时,所有子窗体也会关闭
-
-
UserClosing - 用户关闭
-
最常见的关闭原因
-
用户点击了窗体的关闭按钮(右上角的"X")
-
用户按下了Alt+F4组合键
-
用户从系统菜单中选择"关闭"
-
-
TaskManagerClosing - 任务管理器关闭
-
当用户通过任务管理器强制结束应用程序时触发
-
应用程序可能没有机会执行正常的清理操作
-
-
FormOwnerClosing - 窗体所有者关闭
-
当窗体的所有者(Owner)关闭时触发
-
非MDI应用程序中,一个窗体关闭可能导致其拥有的其他窗体也关闭
-
-
ApplicationExitCall - 应用程序退出调用
-
当代码中显式调用
Application.Exit()方法时触发 -
这是程序化的退出方式
-
-
private void Form_FormClosing(object sender, FormClosingEventArgs e) {// 获取关闭原因CloseReason reason = e.CloseReason;switch (reason){case CloseReason.WindowsShutDown:// 系统关机,需要快速保存数据 SaveImportantData();break;case CloseReason.UserClosing:// 用户主动关闭,询问是否保存if (MessageBox.Show("是否保存更改?", "确认", MessageBoxButtons.YesNo) == DialogResult.Yes){SaveData();}break;case CloseReason.ApplicationExitCall:// 程序化退出,直接关闭break;default:// 其他情况处理break;} }
-
-