永发信息网

c# 如何一次性清除控件集合中的多个控件

答案:1  悬赏:70  手机版
解决时间 2021-03-15 17:40
假设在窗体上放了6个button的控件,name属性分别为button1...button6 则下面的程序有什么问题吗?
---------------------
private void button1_Click(object sender, EventArgs e)
{

for (int i = 0; i < this.Controls.Count; i++)
{
Control cc = this.Controls[i];
if (cc is Button)
{
string name = cc.Name;
name = name.Substring(6);
if (int.Parse(name) >= 3)
{
this.Controls.RemoveAt(i);
}
}
}

}
----------------------------------
经测试 它不能一次性把name属性为button3...button6清除,这是软件的bug?
-----------------------------
换句话说,如何正确的一次清除控件集合中的多个对象?
-------------------------
清除单个控件好像不是问题
最佳答案
是你写的不对
每次移除控件,它的索引值都变了。你这样写是不行的
using System.Collections.Generic;
List<Control> al = new List<Control>();
for (int i = 0; i < this.Controls.Count; i++)
{
Control cc = this.Controls[i];
if (cc is Button)
{
string name = cc.Name;
name = name.Substring(6);
if (int.Parse(name) >= 3)
{
al.Add(cc);
}
}
}
foreach (object os in al)
{
this.Controls.Remove((Control)os);
}
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
1.72+0.53+0.28+1.47 的简便计算 3.2×1.25×
合力泰公司己经淡季,员工没事做员工如何是好
宝马X5 08款中文说明书
鼎鑫隆怎么样
为什么友情这么脆弱?
求一篇寒假里一件有意义的事提纲100字左右。
2016 哈尔滨工业大学少数民族预科何时开学
喜顺囍铺地址在什么地方,想过去办事
照明0.5lx什么意思
地府和女儿门派法宝是什么?
怎么样在手机上记录平时学的新单词?
芳芳烫染设计在什么地方啊,我要过去处理事情
怎么样使wav文件变小但还是wav格式
今天准备去参加生日派对,穿什么衣服好呢
关于体育运动,下列说法正确的是A.射箭过程中
推荐资讯
老村长酒泡小米钓鱼可以吗
新买的坚果手机听筒没一点声音
一根8米的碳素鱼竿多重
我想办个北京的高低压电工证多少钱
洋坪隧道我想知道这个在什么地方
小米手机最近很费流量咋回事
那撒怎么去啊,有知道地址的么
潘德新时代恶魔复仇者怎么打
飞智手柄有什么优势,好用在哪?
多肉植物青丽和黄丽怎么区别
拨打8008189868查询药品真假,这个电话是免费
车身是银黄色喷漆给喷成银灰色年检可以吗?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?