按Tab键实现切换Private Sub ssTab_KeyDown(KeyCode As Integer, Shift As Integer) Dim nTabCount As Integer ‘选项卡总数 Dim nSelectTab As Integer '当前选中的选项卡
If KeyCode = 9 Then nTabCount = ssTab.Tabs nSelectTab = ssTab.Tab nSelectTab = nSelectTab + 1 ssTab.Tab = nSelectTab Mod nTabCount End If End Sub
Private Sub SSTab1_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = vbKeyF11 Then 'MsgBox "vbKeyF11" SSTab1.SetFocus SSTab1.Tab = 1 End If If KeyCode = vbKeyF12 Then 'MsgBox "vbKeyF12" SSTab1.SetFocus SSTab1.Tab = 2 End If End Sub
如果是要在sstab未获取焦点的时候实现任何位置按键都切换tab选项卡是需要用系统键盘HOOK方法的!你可以找一下相关资料。 如果窗口上只有TAB那就在 Form_KeyDown 和 SSTab1_KeyDown 事件里写一样的切换程序就可以了 。另外快捷键不要用TAB键,那样如果选项卡里有其它控件就会有问题!这个方法也是有问题的,如果焦点不在TAB或form上就会有问题,除非你在所有控件keydown下面都写上切换代码 Private Sub SSTab1_KeyDown(KeyCode As Integer, Shift As Integer) Dim nTabCount As Integer '选项卡总数 Dim nSelectTab As Integer '当前选中的选项卡
If Shift = vbCtrlMask And KeyCode = vbKeyTab Then 'Ctrl+Tab nTabCount = SSTab1.Tabs nSelectTab = SSTab1.Tab nSelectTab = nSelectTab + 1 SSTab1.Tab = nSelectTab Mod nTabCount End If End Sub
Dim nTabCount As Integer ‘选项卡总数
Dim nSelectTab As Integer '当前选中的选项卡
If KeyCode = 9 Then
nTabCount = ssTab.Tabs
nSelectTab = ssTab.Tab
nSelectTab = nSelectTab + 1
ssTab.Tab = nSelectTab Mod nTabCount
End If
End Sub
If KeyCode = vbKeyF11 Then
'MsgBox "vbKeyF11"
SSTab1.SetFocus
SSTab1.Tab = 1
End If
If KeyCode = vbKeyF12 Then
'MsgBox "vbKeyF12"
SSTab1.SetFocus
SSTab1.Tab = 2
End If
End Sub
如果窗口上只有TAB那就在 Form_KeyDown 和 SSTab1_KeyDown 事件里写一样的切换程序就可以了
。另外快捷键不要用TAB键,那样如果选项卡里有其它控件就会有问题!这个方法也是有问题的,如果焦点不在TAB或form上就会有问题,除非你在所有控件keydown下面都写上切换代码
Private Sub SSTab1_KeyDown(KeyCode As Integer, Shift As Integer) Dim nTabCount As Integer '选项卡总数
Dim nSelectTab As Integer '当前选中的选项卡
If Shift = vbCtrlMask And KeyCode = vbKeyTab Then 'Ctrl+Tab
nTabCount = SSTab1.Tabs
nSelectTab = SSTab1.Tab
nSelectTab = nSelectTab + 1
SSTab1.Tab = nSelectTab Mod nTabCount
End If
End Sub
只是一个思路而已。你完全可以象3楼那样,用F系列按钮来循环切换。甚至ALT键等。