代码之家  ›  专栏  ›  技术社区  ›  C. Ross trotttrotttrott

在窗体处理时是否处理非组件?

  •  7
  • C. Ross trotttrotttrott  · 技术社区  · 15 年前

    我有一个窗体,其中有一个成员实现 IDisposable 但不是 IComponent . 我需要在表格处理时处理它。不幸的是,表单的Dispose已经在代码的自动生成部分实现,并且不是部分的。

    如何处置此对象?

    2 回复  |  直到 15 年前
        1
  •  4
  •   Reed Copsey    15 年前

    覆盖 Form.Dispose(bool) 以你的形式,在那里处理你的物品。

    为了了解这是如何工作的,您可以参考上的msdn页面 Implementing a Dispose Method . 表单类遵循此模式,这允许您重写 Dispose(bool) 在子类中。(一定要打电话 base.Dispose(disposing) 在您的覆盖中也是正确的。)


    如果您不愿意将它从.designer.cs文件移到主.cs文件中,另一个选项是订阅您自己的文件。 FormClosed 事件,并在该事件处理程序中处置您的资源。msdn建议采用这种方法-来自FormClosed的文档:

    可以使用此事件执行任务,例如释放表单使用的资源,保存表单中输入的信息或更新其父表单。

        2
  •  1
  •   Henk Holterman    15 年前

    您可以移动覆盖的 Dispose(bool) 方法到分部类的一侧。根据经验,它不会在设计器部分重新创建。

    推荐文章