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