宝宝踩踩 2017-01-13 08:04 采纳率: 0%
浏览 3267
已结题

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

动态添加了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条回答 默认 最新

  • threenewbee 2017-01-13 16:30
    关注
     foreach (Control ns in tabPage_Database.Controls)
    ->
    foreach (Control ns in tabPage_Database.Controls.Cast<Control>().ToList())
    
    评论

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?