2015-07-15 5 views
0

Работает в VS2013 VB, у меня есть элемент управления TabControl, который имеет элементы управления Button на разных вкладках с именем Button1, Button2 и т. Д. Я хочу установить видимое свойство равным false для всех кнопок во время загрузки формы , однако он не работает. Я уверен, что мне не хватает чего-то простого, вот мой код:Скрыть элементы управления на TabControl

Dim ctl As Control 

    'Loop thru all controls 
    For Each ctl In Me.Controls 

     'Test that it is a Button and test for name 
     If (TypeOf ctl Is Button And Mid(ctl.Name, 1, 6) = "Button") Then 

      'Hide the Button 
      ctl.Visible = False 

     End If 

    Next 

ответ

2

Вам нужно будет посмотреть коллекцию вкладки и коллекцию элементов управления. Попробуйте что-то вроде этого:

Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load 
    Try 
     hideButtons() 
    Catch ex As Exception 
     MessageBox.Show(String.Concat("An error occurred ", ex.Message)) 
    End Try 
End Sub 

Private Sub hideButtons() 

    For Each tp As TabPage In TabControl1.TabPages 
     For Each ctl As Control In tp.Controls 
      If (TypeOf ctl Is Button And Mid(ctl.Name, 1, 6) = "Button") Then 
       ctl.Visible = False 
      End If 
     Next 
    Next 

End Sub 
+0

Этот код имеет ошибку на «Для каждого CTL» НСИ «Variable„CTL“скрывает переменную в блоке ограждающей» – Terabithia

+0

Это будет ошибкой, если вы вставить его в ваш блок кода и оставьте свой оператор «Dim ctl as Control», но я не думаю, что этот оператор больше необходим. Поэтому вы можете удалить его. Я редактировал код, чтобы показать рабочую версию. –

+0

Что сработало, спасибо – Terabithia

Смежные вопросы