Элементы управления VB.NET не видны - PullRequest
1 голос
/ 27 марта 2012

Я пытаюсь увидеть все метки в Me.Controls, и когда я использую:

For Each Control As Label In Me.Controls.OfType(Of Label)()
    MsgBox(Control.Name.ToString)
Next

, отображаются только метки, которые НЕ были переименованы.Я что-то здесь не так делаю?

1 Ответ

3 голосов
/ 27 марта 2012

По большей части ваш код выглядит правильно, если только у вас нет меток внутри других элементов управления контейнера, таких как 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...