日期:2014-05-18 浏览次数:20824 次
//try this foreach (Control control in panel1.Controls) { if (control is PictureBox) { control.Dispose(); } }
------解决方案--------------------
foreach (Control var in panel1.Controls)
{
Control c = var as Button;
c.Dispose();
}
但不知道为什么不能一次性释放
------解决方案--------------------
刚才那个办法不行,因为panel.controls集合发生了改变。
可以先将lable提取到一个集合内,再在该集合内删除.代码如:
ArrayList arr = new ArrayList();
foreach (Control var in this.panel1.Controls)
if (var is button)
arr.Add(var);
for (int i = 0; i < arr.Count; i++)
{
panel1.Controls.Remove(((Control)arr[i]));
((Control)arr[i]).Dispose();
}
这样可以一次性全部删除了
------解决方案--------------------
你的应该用的不是释放吧,你应该把它从控件中移除,用remove方法