Private Sub Text9_KeyPress(KeyAscii As Integer) If (KeyAscii = vbKeyReturn) Then SendKeys ("{TAB}") End If End Sub快结帖!
同意楼上的 Key_Event也可以
SendKeys"{Tab}"Best of luck to you !
Private Sub Form_KeyPress(KeyAscii As Integer) If KeyAscii = vbKeyReturn Then SendKeys "{TAB}" End SubPrivate Sub Form_Load() Me.KeyPreview = True End Subcommandbox间移动还须设置其command_press事件
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) Dim M As msg
If KeyCode = vbKeyEscape Then Unload Me ElseIf KeyCode = vbKeyReturn Then PeekMessage M, Me.hWnd, 0, 0, PM_REMOVE End If End Sub Private Sub Text1_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer) On Error GoTo ErrHAndler
If KeyCode = vbKeyReturn Or KeyCode = vbKeyDown Then Text1(Index + 1).setfocus ElseIf KeyCode = vbKeyUp Then Text1(Index - 1).setfocus End If Exit Sub ErrHAndler: '┏━━━━━━━━━┓ '┃容错处理,把焦点设置在确定按钮上或者text1(0)上 '┗━━━━━━━━━┛ If OKButton.Enabled Then OKButton.SetFocus '最上一个文本框中向上 Else Text1(0).setfocus '最下一个文本框中向下或者输入数据非法 End If Err = 0 End SubPrivate Sub Text1_ChAnge(Index As Integer) '检查是否都是数字 Dim I As Integer
For I = 0 To 6 If Not IsNumeric(Text1(I).Text) Then OKButton.Enabled = False Exit Sub End If Next I OKButton.Enabled = True End Sub...
把Form的KeyPress设为true.然后在所有需要把TAB换成Enter的控件事件Private Sub Text_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then SendKeys "{TAB}" KeyAscii=0 End IfEnd Sub
Public Sub EnterToTab(Keyasc As Integer) If Keyasc = 13 Then SendKeys "{TAB}" End If End Sub这是我的程序中的一段代码!好用的!不过得在程序中做调用!我想你会做吧!
If (KeyAscii = vbKeyReturn) Then
SendKeys ("{TAB}")
End If
End Sub快结帖!
Key_Event也可以
SendKeys"{Tab}"Best of luck to you !
If KeyAscii = vbKeyReturn Then SendKeys "{TAB}"
End SubPrivate Sub Form_Load()
Me.KeyPreview = True
End Subcommandbox间移动还须设置其command_press事件
2)把相同的控件做成数组
3)在form的onkeydown中调用peekmessage删除回车事件。
4)在控件的onkeydown中下一控件setfocus
5)还可以解决上下左右等等。
Dim M As msg
If KeyCode = vbKeyEscape Then
Unload Me
ElseIf KeyCode = vbKeyReturn Then
PeekMessage M, Me.hWnd, 0, 0, PM_REMOVE
End If
End Sub
Private Sub Text1_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)
On Error GoTo ErrHAndler
If KeyCode = vbKeyReturn Or KeyCode = vbKeyDown Then
Text1(Index + 1).setfocus
ElseIf KeyCode = vbKeyUp Then
Text1(Index - 1).setfocus
End If
Exit Sub
ErrHAndler:
'┏━━━━━━━━━┓
'┃容错处理,把焦点设置在确定按钮上或者text1(0)上
'┗━━━━━━━━━┛
If OKButton.Enabled Then
OKButton.SetFocus '最上一个文本框中向上
Else
Text1(0).setfocus '最下一个文本框中向下或者输入数据非法
End If
Err = 0
End SubPrivate Sub Text1_ChAnge(Index As Integer) '检查是否都是数字
Dim I As Integer
For I = 0 To 6
If Not IsNumeric(Text1(I).Text) Then
OKButton.Enabled = False
Exit Sub
End If
Next I
OKButton.Enabled = True
End Sub...
SendKeys "{TAB}"
KeyAscii=0
End IfEnd Sub
If Keyasc = 13 Then
SendKeys "{TAB}"
End If
End Sub这是我的程序中的一段代码!好用的!不过得在程序中做调用!我想你会做吧!