在文本框的KeyDown事件里处理: Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer) On Error Resume Next Select Case KeyCode Case 38 '向上箭 Case 40 ' 向下箭 Case 37 '37向左箭, Case 13, 39 '回车或向右键 if MSFGrid.Col < MSFGrid.ColS - 1 Then '移到同一行的下一个单元格 MSFGrid.Col = MSFGrid.Col + 1 MSFGrid_EnterCell '这个事件主要处理网格显示文本框 ElseIf MSFGrid.Col = MSFGrid.ColS - 1 Then If MSFGrid.Row < MSFGrid.Rows - 1 Then MSFGrid.Row = MSFGrid.Row + 1 MSFGrid.Col = 0 MSFGrid_EnterCell ElseIf MSFGrid.Row = MSFGrid.Rows - 1 Then MSFGrid.Rows = MSFGrid.Rows + 1 MSFGrid.Row = MSFGrid.Row + 1 MSFGrid.Col = 0 MSFGrid_EnterCell End If End If KeyCode = 0 Case Else End Select '37向左箭,38向上箭,39向右箭,40向下箭 End Sub
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
On Error Resume Next
Select Case KeyCode
Case 38 '向上箭
Case 40 ' 向下箭
Case 37 '37向左箭,
Case 13, 39 '回车或向右键
if MSFGrid.Col < MSFGrid.ColS - 1 Then '移到同一行的下一个单元格
MSFGrid.Col = MSFGrid.Col + 1
MSFGrid_EnterCell '这个事件主要处理网格显示文本框
ElseIf MSFGrid.Col = MSFGrid.ColS - 1 Then
If MSFGrid.Row < MSFGrid.Rows - 1 Then
MSFGrid.Row = MSFGrid.Row + 1
MSFGrid.Col = 0
MSFGrid_EnterCell
ElseIf MSFGrid.Row = MSFGrid.Rows - 1 Then
MSFGrid.Rows = MSFGrid.Rows + 1
MSFGrid.Row = MSFGrid.Row + 1
MSFGrid.Col = 0
MSFGrid_EnterCell
End If
End If
KeyCode = 0
Case Else
End Select '37向左箭,38向上箭,39向右箭,40向下箭
End Sub