我正在阅读System.Windows.Forms.Form.OnClosing()方法的MSDN documentation并注意到:
注意:OnClosing方法在.NET Framework 2.0版中已过时;请改用OnFormClosing方法。
我找不到关于为什么它被标记为过时的参考 我想我会在这里问:
我看到的唯一区别是你可以访问FormClosingEventArgs,所以如果你不需要那些(如果你使用OnClosing,你很明显没有)那么切换到有什么好处OnFormClosing?
我知道过时意味着它可以消失,所以你应该尽快更新,但你和我都知道在MS土地上过时的意义不大。我想知道关于为什么的可靠技术细节。
答案 0 :(得分:8)
我认为主要原因是解决OnClosing的一些不一致问题,特别是如果表单由于Application.Exit而关闭,则不会调用它。
调用Application .. ::。Exit方法退出应用程序时,不会调用OnClosed和OnClosing方法。如果在这些方法中都有必须执行的验证代码,则应在调用Exit方法之前单独调用每个打开表单的Form .. ::。Close方法。
OnFormClosing提供对CloseReason成员的访问,这使得处理更加容易,以一种干净,一致的方式处理。