我有一个表单在其构造函数中创建了一些我需要处理的可支配资源。但是,C#表单设计器已在Designer.cs文件中生成一个Dispose()方法,该方法似乎没有任何类型的用户挂钩。所以我不知道我应该如何实现典型的IDisposable
模式。
偶尔会创建此表单但从未显示过,因此使用Close事件无济于事。
有问题的对象不是IComponents
,因此我无法将它们添加到this.components
。
我可以在哪里放置这个清理代码,并确保它在表单处理时运行?
答案 0 :(得分:8)
您可以将Dispose()方法从Designer.cs文件移动到源代码文件。并修改它以为表单类中的任何一次性成员添加dispose调用。这是可以编辑设计器文件的少数情况之一,您只需要远离#region标记为“Windows窗体设计器生成的代码”内的代码。
答案 1 :(得分:2)
我经常想到这一点,虽然我从未真正遇到过这个问题。您可以使用Disposed
事件,但可能有更好的方法可以挂钩我错过的Dispose
。
答案 2 :(得分:1)
表单和控件提供“Disposed”事件,可用于处置他们使用的任何资源。