基本上我所做的是:通过点击按钮添加(n)文本框。当我再次点击它时,此代码运行:
foreach (Control c in this.Controls)
{
TextBox tb = c as TextBox;
if (tb != null)
{
this.Controls.Remove(tb);
tb.Dispose();
}
}
我再次添加(n)文本框,但旧文本框中的每个第二项仍然存在。有什么想法吗?
答案 0 :(得分:1)
从您正在迭代的集合中删除项目是个坏主意。试试这个:
List<Control> toBeRemoved = new List<Control>();
foreach (Control c in this.Controls)
{
if (c instanceof TextBox)
{
toBeRemoved.Add(c);
}
}
foreach (Control c in toBeRemoved)
{
this.Controls.Remove(c);
c.Dispose();
}