C# 控件释放问题

低调的感觉 2008-10-20 01:51:40
我动态的向panel1 控件内添加了几个 PicturesBox 控件
现在想将其全部释放、以下是我写的代码、但是实现不了
运行后、没什么反应啊、为什么。。?
foreach (PictureBox allPic in panel1.Controls)
{
allPic.Dispose();
}
...全文
336 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
rover1367 2012-04-21
  • 打赏
  • 举报
回复
这贴还能回?
不要从0开始,从最大开始递减就好了
alina_rice 2008-10-21
  • 打赏
  • 举报
回复
你的应该用的不是释放吧,你应该把它从控件中移除,用remove方法
ai_numberone 2008-10-21
  • 打赏
  • 举报
回复
刚才那个办法不行,因为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();
}
这样可以一次性全部删除了
ai_numberone 2008-10-21
  • 打赏
  • 举报
回复
foreach (Control var in panel1.Controls)
{
Control c = var as Button;
c.Dispose();
}
但不知道为什么不能一次性释放
ICanUseThisID 2008-10-21
  • 打赏
  • 举报
回复


//try this
foreach (Control control in panel1.Controls)
{
if (control is PictureBox)
{
control.Dispose();
}
}

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧