我试图实现增强的TabControl/TabPage类,以实现真正的TabVisible功能,因为TabPage的可见性属性不能按预期方式工作。TabVisible解决方法 - 内存泄漏
我正在使用C#/ WinForms/VS2005/.Net FW 2.0;我已经实现了这样的代码:
http://csharp.pastebin.com/AUnzRQLw
而且我做了一个表格,以测试它,选中/取消选中复选框来显示/隐藏我已经添加了一些VisibleTabPage控制(HTTP ..// csharp.pastebin.com/MkGJGx2G)。但是,在CheckBox的点击次数为 之后,应用程序开始分配越来越多的内存,并使用相当数量的CPU来显示/隐藏TabPage控件。
任何人都可以指出我错在哪里?
我会建议验证您是否在复选框状态发生变化时重新初始化您的选项卡页面。验证这一点的最好方法是下载任何好的分析器(Windbg等)并查明内存中存在哪些对象。 – 2010-08-06 15:49:01
是的,我用过内存分析器,发现ArrayList对象是罪魁祸首。我创建了一个私有的ArrayList,我在TabControlEx对象的整个生命周期中维护这个私有ArrayList,并解决了这个问题。 – Alexandre 2010-08-06 20:09:51