VB6.0中keypress事件使光标移到下一个文本框。

2024-11-25 03:12:02
推荐回答(2个)
回答1:

这可是特意为你而做的哦,若满意请记得采纳


原理如下


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

回答2:

Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer)
If KeyAscii = 13 Then
If Index = Text1.UBound Then
MsgBox "没有下一个文本框了!"
Else
Text1(Index + 1).SetFocus
End If
End If
End Sub