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 Sub
Private 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