我正在尝试查看Me.Controls
中的所有标签以及我何时使用:
For Each Control As Label In Me.Controls.OfType(Of Label)()
MsgBox(Control.Name.ToString)
Next
它只显示尚未重命名的标签。我在这里做错了吗?
答案 0 :(得分:3)
在大多数情况下,您的代码看起来是正确的,除非您在其他容器控件(如Panels和GroupBoxes)中有标签。在这种情况下,您也需要遍历这些容器。
以下是一个例子:
Dim allContainers As New Stack(Of Control)
allContainers.Push(Me)
While allContainers.Count > 0
For Each item As Control In allContainers.Pop.Controls
If item.Controls.Count > 0 Then
allContainers.Push(item)
End If
If TypeOf item Is Label Then
MessageBox.Show("Label.Name = " + item.Name)
End If
Next
End While