试试这个代码:Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Private Const SB_LINEDOWN = 1 Private Const SB_LINEUP = 0 Private Const EM_LINEFROMCHAR = &HC9 Const WM_VSCROLL = &H115 Dim oldcol As Long Private Sub RichTextBox1_KeyDown(KeyCode As Integer, Shift As Integer) Dim ret As Long ret = SendMessage(RichTextBox1.hwnd, EM_LINEFROMCHAR, -1, 0)
If ret > oldcol Then oldcol = ret SendMessage RichTextBox1.hwnd, WM_VSCROLL, SB_LINEDOWN, 0 ElseIf ret < oldcol Then oldcol = ret SendMessage RichTextBox1.hwnd, WM_VSCROLL, SB_LINEUP, 0 End If End Sub
Private Const SB_LINEDOWN = 1
Private Const SB_LINEUP = 0
Private Const EM_LINEFROMCHAR = &HC9
Const WM_VSCROLL = &H115
Dim oldcol As Long
Private Sub RichTextBox1_KeyDown(KeyCode As Integer, Shift As Integer)
Dim ret As Long
ret = SendMessage(RichTextBox1.hwnd, EM_LINEFROMCHAR, -1, 0)
If ret > oldcol Then
oldcol = ret
SendMessage RichTextBox1.hwnd, WM_VSCROLL, SB_LINEDOWN, 0
ElseIf ret < oldcol Then
oldcol = ret
SendMessage RichTextBox1.hwnd, WM_VSCROLL, SB_LINEUP, 0
End If
End Sub