C# WinForm 动态添加-删除控件内存未释放
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# WinForm 动态添加-删除控件内存未释放相关的知识,希望对你有一定的参考价值。
根据需求要在Winform的一个panel中动态的添加控件,处理完后删除(子线程中操作):
for(n)
while (panel1.Controls.Count > 0)
panel1.Invoke((Action)delegate
panel1.Controls.Remove(panel1.Controls[0]);
);
panel1中根据条件动态添加控件
……
处理
……
跟踪发现内存持续增加。难道是因为panel1.Controls.Remove(panel1.Controls[0]);没有清理干净内存?
while (panel1.Controls.Count > 0)
panel1.Invoke((Action)delegate
Control C=panel1.Controls[0]);
panel1.Controls.Remove(C);
C.Dispose();
);
本回答被提问者和网友采纳 参考技术B 这个最好是看下添加控件部分的代码,主要是创建实例的部分 参考技术C remove 又不回收内存
该有引用的还是要引用到对象上
C# WPF后台动态添加控件(经典)
概述 在Winform中从后台添加控件相对比较容易,但是在WPF中,我们知道界面是通过XAML编写的,如何把后台写好的控件动态添加到前台呢?本节举例介绍这个问题。 这里要用到UniformGrid布局,UniformGrid 是一种横向的网格分割、纵向的网格分割分别是均等的分割的布局类型. 项目
以上是关于C# WinForm 动态添加-删除控件内存未释放的主要内容,如果未能解决你的问题,请参考以下文章