我动态的向panel1 控件内添加了几个 PicturesBox 控件
现在想将其全部释放、以下是我写的代码、但是实现不了
运行后、没什么反应啊、为什么。。?
foreach (PictureBox allPic in panel1.Controls)
{
    allPic.Dispose();
}

解决方案 »

  1.   

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

  2.   

    foreach (Control var in panel1.Controls)
                {
                    Control c = var as Button;
                    c.Dispose();
                }
    但不知道为什么不能一次性释放
      

  3.   

    刚才那个办法不行,因为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();
                }
    这样可以一次性全部删除了
      

  4.   

    你的应该用的不是释放吧,你应该把它从控件中移除,用remove方法