'当用户敲回车时,切换到下一个焦点
Public Sub Form_Enter(KeyAscii As Integer, Count As Integer, Frm_OBJ As Object)
On Error Resume Next
Dim NextTabIndex As Integer, i As Integer
If KeyAscii = 13 Then
If Screen.ActiveControl.TabIndex = Count - 1 Then
NextTabIndex = 0
Else
NextTabIndex = Screen.ActiveControl.TabIndex + 1
End If
Repeat_Tab:
For i = 0 To Count - 1
If ((TypeName(Frm_OBJ.Controls(i))) <> "Label") And ((TypeName(Frm_OBJ.Controls(i))) <> "Frame") And ((TypeName(Frm_OBJ.Controls(i))) <> "PictureBOX") Then
If Frm_OBJ.Controls(i).TabIndex = NextTabIndex Then
If Frm_OBJ.Controls(i).Enabled = True And Frm_OBJ.Controls(i).Visible = True Then
Frm_OBJ.Controls(i).SetFocus
Frm_OBJ.Controls(i).SelStart = 0
Frm_OBJ.Controls(i).SelLength = Len(Frm_OBJ.Controls(i).Text)
Exit For
Else
NextTabIndex = NextTabIndex + 1
GoTo Repeat_Tab
End If
End If
End If
Next i
KeyAscii = 0
End If
End Sub
Public Sub Form_Enter(KeyAscii As Integer, Count As Integer, Frm_OBJ As Object)
On Error Resume Next
Dim NextTabIndex As Integer, i As Integer
If KeyAscii = 13 Then
If Screen.ActiveControl.TabIndex = Count - 1 Then
NextTabIndex = 0
Else
NextTabIndex = Screen.ActiveControl.TabIndex + 1
End If
Repeat_Tab:
For i = 0 To Count - 1
If ((TypeName(Frm_OBJ.Controls(i))) <> "Label") And ((TypeName(Frm_OBJ.Controls(i))) <> "Frame") And ((TypeName(Frm_OBJ.Controls(i))) <> "PictureBOX") Then
If Frm_OBJ.Controls(i).TabIndex = NextTabIndex Then
If Frm_OBJ.Controls(i).Enabled = True And Frm_OBJ.Controls(i).Visible = True Then
Frm_OBJ.Controls(i).SetFocus
Frm_OBJ.Controls(i).SelStart = 0
Frm_OBJ.Controls(i).SelLength = Len(Frm_OBJ.Controls(i).Text)
Exit For
Else
NextTabIndex = NextTabIndex + 1
GoTo Repeat_Tab
End If
End If
End If
Next i
KeyAscii = 0
End If
End Sub
1.设置窗体的keyprevious=true
2.在窗体的keypress的事件中使用sendkeys "{TAB}"
我想可以满足你的要求!