У меня есть вкладка WinForm TabControl, в которой есть достаточно вкладок, которые нужно прокручивать с помощью кнопок <>.TabControl Tab Showing - Scoll in view
В качестве альтернативного действия вы можете щелкнуть по последней видимой вкладке, а вкладки прокрутите влево, чтобы отобразить эту вкладку и следующую вкладку. Тем не менее, это прекрасно работает, противоположное действие не происходит, когда вы нажимаете на первую (самую левую видимую) вкладку. Ожидаемое действие будет означать, что элемент управления автоматически отобразит вкладку с щелчком и одну перед ней.
Какие события или методы можно использовать, чтобы увидеть вкладку вкладки TabPage и прокрутить вкладку TabPage на экране?
Вот некоторые исследования код:
Private Sub TabControl1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles TabControl1.SelectedIndexChanged
If mbFormLoad Then Exit Sub
Dim t As TabPage = TabControl1.SelectedTab
Debug.Print(t.Name)
Debug.Print("CanFocus:" & TabControl1.TabPages(0).CanFocus)
Debug.Print("CanSelect:" & TabControl1.TabPages(0).CanSelect)
Debug.Print("IsAccessible:" & TabControl1.TabPages(0).IsAccessible)
' works but causes screen noise
If TabControl1.SelectedTab.TabIndex > 0 Then
mbFormLoad = True
TabControl1.SuspendLayout()
TabControl1.SelectedIndex = TabControl1.SelectedTab.TabIndex - 1
TabControl1.SelectedIndex = TabControl1.SelectedTab.TabIndex + 1
TabControl1.ResumeLayout()
mbFormLoad = False
End If
End Sub
Все печатные свойства возвращают ложь.
Чтобы проверить, добавьте tabcontrol с несколькими вкладками, отобразите форму и сделайте ее достаточно тощей, чтобы кнопки <> отображались в верхнем правом углу, а свиток перемещает первую вкладку вне поля зрения.