如何删除窗体内某一类控件
vb.net吧
全部回复
仅看楼主
level 2
1589020356 楼主
假设删除创体内全部按钮控件
Dim con as Control
For Each con In Me.Controls
If TypeOf con Is button Then
Controls.Remove(con)
End If
然而执行程序的时候效果确是隔一个按钮删除一个,且按钮是奇数个或偶数个对删除的顺序也有影响,我自学了一段时间,水平有限解决不了这个问题,求大神帮忙啊~
2017年12月04日 04点12分 1
level 7
控件里也有可能有控件,要递归
2017年12月04日 09点12分 2
level 9
那你自己弄个arraylist,用add方法把按钮全部塞进去[惊讶]然后按再遍历这个arraylist按下标顺序删
2017年12月04日 11点12分 3
如果只是放按钮,为啥不用泛型list而用arraylist???
2017年12月04日 20点12分
回复 闪星2 :就算你问我为啥不用泛型list我也不知道啊
2017年12月05日 04点12分
level 11
你应该用调试看一下那些没有被删除的Buttony有没有被判断过,为什么没有进If块。
2017年12月07日 10点12分 5
level 7
外面再加一个while判断循环
2017年12月12日 06点12分 6
level 11
我估计是你的Remove直接对数组造成影响,导致For Each跳过了对象。
比如说你有3个按钮a,b,c,for到0时删除了a,这是变成只有b,c,但这时for会继续前进到1,原来本来应该是b,但是因为删除了a,这个位置就到c了,这样b就被跳过了。
可能是这个原因,我这里一边For Each一边删可是会报错的。
2017年12月18日 03点12分 7
1