求解关于vb中的焦点问题

来源:百度知道 编辑:UC知道 时间:2024/06/29 01:10:22
有4个text控件,开始的时候焦点位于text1,当第一次按下enter时,焦点转移到text2上,再按的时候,焦点就转移到text3上.......依次类推
最好能把程序写下来,谢谢

如果你的TabIndex是按顺序设置的话,还有一个更简单的方法:
设置窗口的 KeyPreview 属性为 True,即让窗体先接收键盘事件,然使用以下代码:
Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii = vbKeyReturn Then
If TypeOf ActiveControl Is TextBox Then
SendKeys "{tab}"
End If
End If
End Sub

使用了KEYUP事件。当键盘抬起以后。判断KEYCODE参数是不是13,也就是是不是回车。是。则给text2焦点。
Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer)
If KeyCode = 13 Then
Me.Text2.SetFocus
End If
End Sub

Private Sub Text2_KeyUp(KeyCode As Integer, Shift As Integer)
If KeyCode = 13 Then
Me.Text3.SetFocus
End If
End Sub

Private Sub Text3_KeyUp(KeyCode As Integer, Shift As Integer)
If KeyCode = 13 Then
Me.Text4.SetFocus
End If
End Sub

这样的方法可以解决你的问题:

Private Sub Text1_KeyPress(KeyAscii As Integer)
Debug.Print KeyAscii
If (KeyAscii = 13) Then
Text2.SetFocus
End If

End Su