如何循环遍历容器中的所有控件,以及包含控件的容器中的所有控件,等等。
Form
-Panel
--Control
--Tab
----Control
----Control
--Tab
----Control
以下仅检索-Panel而不检索其他控件
For Each cntrl As Control In Me.Controls
Next
如何在For Each循环中检索所有内容而不为堆栈中的每个级别使用If / Then?
编辑:
Dim ctl As Control = Me
Do
ctl = Me.GetNextControl(ctl, True)
'Do whatever you have to ctl
Loop Until ctl Is Nothing
这是迄今为止我发现的最好的方法。
答案 0 :(得分:2)
您必须定义recursively
遍历容器内容器的方法。像这样:
Dim _list As New List(Of Control)
Public Sub GetChilds(container As Control)
For Each child As Control In container.Controls
_list.Add(child)
If (child.HasChildren) Then
GetChilds(child)
End If
Next
End Sub
要调用此方法:
list=new List(Of Control)
GetChilds(Me)
For Each cntrl As Control In _list
....
Next