日期:2014-05-17  浏览次数:20663 次

c# 动态删除空间碰到 一个奇怪的问题

这些 控件都在 panelPic 中
代码为如上时:  textBoxPic3  textBoxLink3  这两个 textbox 控件都删除了,但 labelPicIndex3 还存在
            foreach (Control con in panelPic.Controls)
            {
              
                if (con.Name == "labelPicIndex3")
                {
                    panelPic.Controls.Remove(con);
                    con.Dispose();
                }
                if (con.Name == "textBoxPic3")
                {
                    panelPic.Controls.Remove(con);
                }

                if (con.Name == "textBoxLink3")
                {
                    panelPic.Controls.Remove(con);
                }
            
               
            }


代码为如下时:  labelPicIndex3  才被移除

            foreach (Control con in panelPic.Controls)
            {
              
                if (con.Name == "labelPicIndex3")
                {
                    panelPic.Controls.Remove(con);
                    con.Dispose();
                }
                  
            }



不知道为啥为这样,谢谢

------解决方案--------------------
foreach + Remove 哪看来的?

你正在遍历panelPic.Controls,结果你改变了panelPic.Controls的内容,当然会出问题
------解决方案-