2 bbcc19880724 bbcc19880724 于 2017.01.13 16:04 提问

C#winform删除动态添加的多个控件 2C

动态添加了10个控件,如下:其中RandomSquare.Square是自定义控件,
RandomSquare.Square[] ns = new RandomSquare.Square[1000];
ns[0] = new RandomSquare.Square();
ns[0].Parent = tabPage_Database;
ns[0].Location = new Point(200,200);
ns[0].Size = new Size(50, 50);
tabPage_Database.Controls.Add(ns[0]);
for (int i=1;i<=9;i++)
{
ns[i]= new RandomSquare.Square();
ns[i].Parent = tabPage_Database;
ns[i].Size = new Size(50, 50);
ns[i].Location = new Point(ns[i - 1].Location.X + ns[i - 1].Width, ns[i - 1].Location.Y);
tabPage_Database.Controls.Add(ns[i]);
}
动态删除(例如点击一个btn)代码如下:
private void button3_Click(object sender, EventArgs e)
{
foreach (Control ns in tabPage_Database.Controls)
{
if (ns.GetType().ToString().Equals("RandomSquare.Square"))
{
tabPage_Database.Controls.Remove(ns);
}
}

}
点玩按钮后,控件删除总会剩下两个,这是为什么?
如图:
点击前:
图片说明
点击后:
图片说明

1个回答

caozhy
caozhy   Ds   Rxr 2017.01.14 00:30
 foreach (Control ns in tabPage_Database.Controls)
->
foreach (Control ns in tabPage_Database.Controls.Cast<Control>().ToList())
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!