TabVisible解决方法 - 内存泄漏

时间:2010-08-06 15:06:29

标签: c# winforms visible tabpage

我正在尝试实现增强的TabControl / TabPage类,以实现真正的TabVisible功能,因为TabPage的Visible属性不能按预期工作。

我正在使用C#/ WinForms / VS2005 / .Net FW 2.0;我用这种方式实现了代码:

http://csharp.pastebin.com/AUnzRQLw

我已经制作了一个Form来测试它,检查/取消选中CheckBoxes以显示/隐藏我添加的一些VisibleTabPage控件(http ..// csharp.pastebin.com/MkGJGx2G)。但是,经过一段时间 CheckBoxes上的特定点击次数,随机顺序,应用程序开始分配越来越多的内存,并使用一些相当数量的CPU来显示/隐藏TabPage控件。

有人能指出我的错误在哪里吗?

1 个答案:

答案 0 :(得分:1)

摔跤的代码太多了。但是我看到你使用像Remove()和Clear()这样的方法,而你没有为标签页调用Dispose()方法。这些页面被“停放”并将继续使用系统资源。运行Taskmgr.exe,进程选项卡,查看+选择列,勾选User32对象。你可能会看到这个数字没有受到限制,因为你的代码泄漏了标签页及其所有控件的句柄。