C# 为什么OnClosing过时了?我应该迁移到OnFormClosing吗
我正在阅读System.Windows.Forms.Form.OnClosing()方法的示例,并注意到: 警告:OnClosing方法在.NET Framework 2.0版中已过时;改用OnFormClosing方法 我找不到关于为什么它被标记为过时的参考资料。C# 为什么OnClosing过时了?我应该迁移到OnFormClosing吗,c#,.net,winforms,C#,.net,Winforms,我正在阅读System.Windows.Forms.Form.OnClosing()方法的示例,并注意到: 警告:OnClosing方法在.NET Framework 2.0版中已过时;改用OnFormClosing方法 我找不到关于为什么它被标记为过时的参考资料。 我想我会在这里问: 在我浪费了几个小时在反射器中艰难前行之前 作为其他人的参考,这将是有益的 我看到的唯一区别是,您可以访问,因此如果您不需要这些(如果您使用OnClosing,您显然不需要这些),那么切换到OnFormClosin
我想我会在这里问:
我理解过时意味着它可能会消失,所以您应该尽快更新,但您和我都知道,在MS land中过时意味着什么。我想知道确切的技术细节来解释原因。我认为主要原因是解决了OnClosing的一些不一致之处,特别是,如果表单由于Application.Exit而关闭,则不会调用它 从: 调用应用程序..::.Exit方法以退出应用程序时,不会调用OnClosed和OnClosed方法。如果在这些方法中有必须执行的验证代码,则应在调用Exit方法之前分别为每个打开的表单调用Form..::.Close方法
OnFormClosing提供了对CloseReason成员的访问,这使得处理更容易以干净、一致的方式正确处理。这一点,并且您可以在不关闭应用程序的情况下关闭表单,因此能够区分两者是很重要的。