在System.Windows.Form-derived类中处置资源的位置

本文关键字:资源 位置 System Windows Form-derived | 更新日期: 2023-09-27 18:00:28

我有一个表单,它在构造函数中创建了几个需要处理的可丢弃资源。然而,C#表单设计器已经在designer.cs文件中生成了一个Dispose()方法,该方法中似乎没有任何类型的用户挂钩。因此,我不知道该如何实现典型的IDisposable模式。

此表单偶尔会创建,但从未显示,因此使用"关闭"事件没有帮助。

有问题的对象不是IComponents,所以我不能直接将它们添加到this.components中。

我可以把这个清理代码放在哪里,并确保它在处理表单时运行?

在System.Windows.Form-derived类中处置资源的位置

您可以将Dispose()方法从Designer.cs文件移动到源代码文件中。并对其进行修改,为表单类中的任何一次性成员添加dispose调用。这是少数可以编辑设计器文件的情况之一,您只需要远离#区域内标记为"Windows窗体设计器生成的代码"的代码。

我经常对此感到好奇,尽管我从未遇到过它的问题。您可以使用Disposed事件,尽管可能有更好的方法挂接我错过的Dispose

Form和Control提供了一个"Disposed"事件,可用于处置它们使用的任何资源。