为什么OnClosing已经过时,我应该迁移到OnFormClosing

我正在阅读System.Windows.Forms.Form.OnClosing()方法的MSDN文档 ,并注意到:

注意:OnClosing方法在.NET Framework 2.0版中已过时; 请改用OnFormClosing方法。

我找不到它为何被标记为过时的参考。
我想我会在这里问:

  1. 在我浪费几个小时穿过reflection器之前
  2. 将其他人作为参考是有用的

我看到的唯一区别是你可以访问FormClosingEventArgs ,所以如果你不需要那些(如果你使用的是OnClosing,你很明显没有)那么切换到OnFormClosing有什么好处?

我知道过时意味着它可以消失,所以你应该尽快更新,但你和我都知道在MS土地上淘汰意味着很少。 我想知道有关原因的可靠技术细节。

我认为主要原因是解决OnClosing的一些不一致问题,特别是如果表单由于Application.Exit而关闭则不会调用它。

从文档 :

调用Application .. ::。Exit方法退出应用程序时,不会调用OnClosed和OnClosing方法。 如果您在必须执行的这些方法中都有validation代码,则应在调用Exit方法之前单独调用每个打开表单的Form .. ::。Close方法。

OnFormClosing提供对CloseReason成员的访问,这使得处理更加容易,以一种干净,一致的方式正确处理。