日期:2014-05-18  浏览次数:20862 次

关于自定义控件资源回收的问题
自己写了一个控件,想用一个静态的类来管理所加的控件,即:当控件加到窗口上时,控件数就加一,然后设置控件的一个ID属性(唯一性),如果在设计时从窗口删除这种类型的一个控件,那么静态类管理的控件数就减一,我在控件的析构函数中写了减一的代码,但由于资源是GC管理的,所以肯定不会立即回收,也即静态类的控件数其实并没有减一,直到控件完全析构了才会减一,在删除的这个控件没有析构时,我又加了一个自已写的控件,此时静态类管理的控件数会与窗口显示的控件数不一致.

不知道如何解决,给先50吧,谢谢!!!

------解决方案--------------------
不必等控件直正的释放掉再减小数值,而是调用了控件的Dispose()方法后就减小(或者调用了Close、Remove之类的方法)
每次新加一个控件的时候直接使用New来新建而不必管原来的对象是否释放掉了。
------解决方案--------------------
用一个静态的类来管理所加的控件是在编辑的时候管理还是在运行时管理?
------解决方案--------------------
在该控件的designer类中调用IDesignerHost 实例的 DestroyComponent 方法.
------解决方案--------------------
写一个池类,控件创建一个就加入池中,池中有二个方法,一个加入实例,一个释放实例,
释放实例方法以控件ID为参数.

然后在控件类的析构方法中加入
池.释放(this.ID);看看
没调试,有结果发上来共同学习学习
------解决方案--------------------
能不能给俺也解决下问题?
帮顶,能不能帮我也解决下
http://topic.csdn.net/u/20071026/10/d4ad648a-aa31-4b46-9476-5391a37a7156.html?seed=1221134670