C# WinForm 如何动态添加控件和设计控件布局

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# WinForm 如何动态添加控件和设计控件布局相关的知识,希望对你有一定的参考价值。

参考技术A 动态添加,不就是不拖拽吗那就new一个控件啊,想让他定位啊?location这个属性就是定位的→控件左上角相对于其容器左上角的坐标。margin,size
自己尝试哦,祝愿你C#越学越好。
参考技术B 比如button
button
btn=new
button();//初始化一个控件
btn.size=new
size(100,100);//设置大小
btn.location=new
postion(50,100);//设置坐标
btn.text="按钮1";//设置文本
this.controls.add(btn);//添加到窗体中
上面的大致就这样

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]);没有清理干净内存?

参考技术A 你只是移除了!!没有释放啊!!
while (panel1.Controls.Count > 0)

panel1.Invoke((Action)delegate

Control C=panel1.Controls[0]);
panel1.Controls.Remove(C);
C.Dispose();
);
本回答被提问者和网友采纳
参考技术B 这个最好是看下添加控件部分的代码,主要是创建实例的部分 参考技术C remove 又不回收内存
该有引用的还是要引用到对象上

以上是关于C# WinForm 如何动态添加控件和设计控件布局的主要内容,如果未能解决你的问题,请参考以下文章

C# WinForm 自定义控件如何实现动态添加子控件

C# winform动态添加控件获取值问题

C# winform动态添加控件获取值问题

C# WinForm 动态添加-删除控件内存未释放

c# 中如何在GroupBox控件中动态添加与移除控件

C#如何动态加载RadioButton控件