2
我有一个WinForm TabControl有足够的选项卡,需要使用<>按钮将一些标签滚动到视图中。TabControl标签显示 - Scoll到视图
作为替代动作,您可以单击最后一个可见选项卡,然后向左滚动选项卡以将该选项卡和下一个选项卡放入视图中。这可以正常工作,但是当您单击第一个(最左侧的可见)选项卡时,不会发生相反的操作。预期的操作将使控件自动显示点击标签和之前的标签。
我可以使用哪些事件或方法来查看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
所有的印刷性能返回false。
要测试添加tabcontrol与几个选项卡,显示窗体,并使其足够瘦,<>按钮显示在右上角和滚动移动的第一个标签的视图。