首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

怎么遍历窗体内所有字控件

2012-05-14 
如何遍历窗体内所有字控件?假设有一窗体Form1中有两个Panel控件Panel1和Panel2,两个Panel控件内都有若干个

如何遍历窗体内所有字控件?
假设有一窗体Form1中有两个Panel控件Panel1和Panel2,两个Panel控件内都有若干个字控件
本人想获取窗体内所有控件的Name及Text属性

VB.NET code
        For Each Con As Control In Me.Controls        Next


这种For结构没有结果,必须这样:

VB.NET code
        For Each Con As Control In Me.Controls("Panel1").Controls        Next        For Each Con As Control In Me.Controls("Panel2").Controls        Next


那如何窗体内有多个Panel,而每个Panel内又有Panel,想要遍历所有控件不是很麻烦??
有可以一次性遍历所有子控件的方法吗

[解决办法]
判断类型
If TypeOf c Is System.Windows.Forms.RadioButton Then

end if
[解决办法]
这个需要用递归。。。。。。
递归是一个自己调用自己的函数。
下面这个函数传入值为父控件,在递归过程中,把子控件的背景颜色设置为和父控件一致。
Private Sub GetChildCtrl(ParentCtrl As Control)
For Each ctrlC As Control In ParentCtrl.Controls
'设置颜色
ctrlC.BackColor = ParentCtrl.BackColor
'递归
If ctrlC.HasChildren Then GetChildCtrl(ctrlC)
Next
End Sub

热点排行