代码之家  ›  专栏  ›  技术社区  ›  Andrew Burns

为什么一旦失去过时,我应该迁移到onformClosing

  •  5
  • Andrew Burns  · 技术社区  · 16 年前

    我在读 MSDN documentation 对于System.Windows.Forms.Form.OnClosing()方法,注意:

    警告:onClosing方法在.NET Framework 2.0版中已过时;请改用onFormClosing方法。

    我找不到关于 为什么? 它已被标记为过时。
    我想我会在这里问:

    1. 在我浪费时间通过反射镜之前
    2. 作为他人的参考是有用的。

    我看到的唯一区别是你可以访问 FormClosingEventArgs 如果你不需要这些(如果你使用onClosing显然不需要),那么切换到onFormClosing有什么好处吗?

    我明白过时意味着 能够 走开,所以你应该尽快更新,但你和我都知道,在MS Land中过时意味着什么。我想知道关于 为什么? .

    1 回复  |  直到 16 年前
        1
  •  7
  •   Reed Copsey    16 年前

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

    documentation :

    当调用应用程序..::.Exit方法以退出应用程序时,不会调用OnClosed和OnClosed方法。如果必须执行这些方法中的任何一个方法中有验证代码,则应在调用exit方法之前分别为每个打开的表单调用Form..::.Close方法。

    onformClosing提供了对closeReason成员的访问,这使得以一种干净、一致的方式正确处理操作更加容易。