Настройка фокуса на вкладке - PullRequest
3 голосов
/ 12 июля 2011

У меня есть вкладка в форме окна под названием Вафельная карта, которая имеет три вложенные вкладки. Первая подвкладка называется «Карта» и имеет кнопку «Загрузить и пропустить». Я пытаюсь установить фокус на вкладке «Вафельные» при нажатии кнопки «Загрузить». Это следующий код, который я пытался использовать.

Private Sub Load_Wafer_Layout_Map_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Load_Wafer_Layout_Map.Click
    Wafer_Info.Enabled = True
    Wafer_Info.Show()
End Sub

Wafer_Info.Enabled = True используется для включения всех элементов управления на вкладке Wafer и работает правильно при нажатии кнопки. Я пытался использовать .Focus () и .Show (), чтобы перенести фокус на следующую вкладку, но мне не повезло переключиться. У кого-нибудь есть предложения?

Ответы [ 4 ]

6 голосов
/ 12 июля 2011

Просто установите его:

tabControl.SelectedTab = yourTab

На вкладках «Элементы управления вкладками» просто убедитесь, что вы называете вкладку, на которую пытаетесь сослаться.Дополнительно см. MSDN TabControl.SelectedTab

3 голосов
/ 14 мая 2013

Я наткнулся на эту тему, когда искал решение своей проблемы.У меня есть TabControl со многими TabPages.Каждая вкладка настроена на автоматическую прокрутку из-за переполнения содержимого.Проблема, с которой я столкнулся, заключалась в том, что колесо прокрутки мыши не работало бы, если бы у TabPage не было фокуса.Поскольку для каждого нажатия вкладки не было события, это усложняло настройку фокуса для каждой вкладки.Это было не сложно, но задача, тем не менее.Итак, вот мой код (при условии автоматической прокрутки true).

При загрузке формы устанавливает фокус на основной TabPage:

Private Sub frmParent_Load(sender As Object, e As System.EventArgs) Handles Me.Load
    TabControl1.TabPages(0).Focus()
End Sub

Устанавливает фокус на текущую TabPage, получая индекс, затем устанавливая фокус.Это вызвано событием TabControl1.SelectedIndexChange.

Private Sub TabControl1_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles TabControl1.SelectedIndexChanged
    Dim intTabIndex As Integer = TabControl1.SelectedIndex
    TabControl1.TabPages(intTabIndex).Focus()
End Sub

Я надеюсь, что кто-то найдет это полезным.Это было очень полезно для меня.

Джошуа

3 голосов
/ 28 июля 2011

Код, который работал для меня это Tab_WaferMap.SelectTab(1). Tab_WaferMap - моя основная вкладка, а 1 - индекс вложенной вкладки, которую я хотел показать

0 голосов
/ 13 июля 2011

Вы также можете установить Выбранный индекс вкладки (и вложенной вкладки), используя числовое значение (на основе нуля):

TabParent.SelectedIndex = 3
TabSub.SelectedIndex=2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...