处理动态创建的控件

时间:2009-07-09 21:27:03

标签: .net winforms controls dispose

我有一个WinForms TabControl,我在运行时动态添加TabPages。每个TabPage都包含一个WebBrowser控件。我还可以在运行时删除TabPages。

我应该打扰Dispose()TabPage和/或WebBrowser控件吗?

在我看来,我至少应该使用Dispose()WebBrowser控件,因为它有点资源耗尽。

3 个答案:

答案 0 :(得分:2)

你分配的所有实现IDisposable的东西都应该调用Dispose。这就是实现IDisposable的目的。

答案 1 :(得分:2)

删除标签页时,应该将其设置为()。这将自动处理所有子控件。

有关详细信息,请参阅Control.Dispose文档:

  

释放Control及其子控件使用的非托管资源,并可选择释放托管资源。

标签页的处理也将为您处理所有子控件。

答案 2 :(得分:1)

如果明确调用Dispose(),通常会比不这样做更快地清除它。如果您担心资源,或者您的对象持有可能稀缺或需求量很大的其他资源,那么明确调用Dispose()总是一个好主意。

我总是推荐这篇CodeProject文章来帮助人们正确理解Dispose模式,以及Dispose的全部内容。 http://www.codeproject.com/KB/cs/idisposable.aspx