VB6.0中keypress事件使光标移到下一个文本框。
我也想过这样的代码,Private Sub Text1(0)_KeyPress(KeyAscii As Integer)
但是提示错误。 展开
原理如下
1、建立一个文本框数组,和一个全局数值变量
2、把窗体的键盘接收属性打开 Form1.KeyPreview = True
3、然后在键盘事件中编写代码,主要是判断按下的按键是否是 回车
4、之后在文本框的焦点事件中编写代码,根据选择的文本框来赋值变量
本人只建立了16个文本框数组,你可根据原理,任意修改
程序截图和程序代码如下
Option Explicit '强制变量声明
Dim t As Integer '一个数值型变量
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) '键盘响应
If KeyCode = Val(13) Then '如果按下了回车键
t = t + 1 '变量加一
If t > 15 Then '如果超出控件数组个数
MsgBox "已经是最后一个", 0, "提示信息" '提示信息
t = 15 '变量值赋予控件数组最大值
Else
Text1(t).SetFocus '否则把焦点转移到下一个
End If
End If
End Sub
Private Sub Text1_GotFocus(Index As Integer) '文本框焦点事件
t = Index '记录当前获得焦点的控件数组 值
End Sub
谢谢好心人的耐心回答,也让我学到另外一种方法了,我试了1楼方法,感觉还不错,你的方法更适合我这样的初学者,虽然没有给你采纳,但是我为您的分享精神和乐于助人感到万分感激,祝您新年快乐!
哦,没关系
我也是提交答案后,才看到有人已经早一步提交了
如果早看到他的,我就不提交了
他的代码更简单些
If KeyAscii = 13 Then
If Index = Text1.UBound Then
MsgBox "没有下一个文本框了!"
Else
Text1(Index + 1).SetFocus
End If
End If
End Sub