0

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

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

http://csharp.pastebin.com/AUnzRQLw

我制作了一个表格来测试它,选中/取消选中 CheckBoxes 以显示/隐藏我添加的一些 VisibleTabPage 控件 (http..//csharp.pastebin.com/MkGJGx2G)。但是,在 CheckBoxes 上单击一定次数后,应用程序开始以随机顺序分配越来越多的内存,并使用相当多的 CPU 来显示/隐藏 TabPage 控件。

谁能指出错误在哪里?

4

1 回答 1

1

这有点太多的代码来挣扎。但是,我看到您使用 Remove() 和 Clear() 之类的方法,而您从未为标签页调用 Dispose() 方法。这些页面被“停放”并将继续使用系统资源。运行 Taskmgr.exe,进程选项卡,查看 + 选择列,勾选 User32 对象。您可能会看到这个数字无限制地上升,因为您的代码正在泄漏标签页的句柄及其所有控件。

于 2010-08-06T17:32:33.270 回答