2013-11-21 3 views
0

В блокноте в меню редактирования есть кнопка «Готово» для перехода к определенной строке. Я попытался сделать кодирование для этого в VB 6.0, но он не работает. Код такой, как показано ниже.в vb 6.0 как перейти к определенной строке

Private sub goto_click() 
    Dim s As String 
    s = InputBox("enter line number") 
    If IsNumeric(s) = True Then 
     RichTextBox1.SelStart = RichTextBox1.GetLineFromChar(s - 1) 
     RichTextBox1.Move (s) 
     RichTextBox1.SetFocus 
    End If 
End Sub 

ответ

0

Это был век, и у меня больше нет VB6 на моих системах. Я собрал это вместе из бит по всей сети. Надеюсь, это действительно работает ... Я не могу это проверить:

Private Const EM_LINEINDEX = &HBB 

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _ 
    (ByVal hWnd As Long, ByVal wMsg As Long, _ 
    ByVal wParam As Any, ByVal LParam As Any) As Long 

Private Sub goto_click() 
    Dim s As String 
    s = InputBox("Enter Line Number") 
    If IsNumeric(s) Then 
     Dim index As Long 
     index = SendMessage(RichTextBox1.hWnd, EM_LINEINDEX, CLng(s) - 1, 0) 
     RichTextBox1.SelStart = index 
     RichTextBox1.SetFocus 
    End If   
End Sub 
+0

Нет, он не работает, он дает ошибку компиляции в 1-й строке как строку постоянной фиксированной длины и объявляет утверждение не разрешенным как открытый член объектного модуля. я делаю его приватным, но опять же он дает ошибку, как несоответствие типов в частном sub goto_click – user2971979

+0

Какая ошибка? –

+0

Возможно, вам придется изменить эти два 'Public' to 'Private'. –

0

Я тестирую этот код, и он отлично работает.

Private Const EM_LINEINDEX = &HBB 
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 Sub goto_Click() 
Dim s As String 
    s = InputBox("Enter Line Number") 
    If IsNumeric(s) Then 
     Dim index As Long 
     index = SendMessage(RichTextBox1.hWnd, EM_LINEINDEX, CLng(s) - 1, 0) 
     RichTextBox1.SelStart = index 
     RichTextBox1.SetFocus 
    End If 
End Sub 
Смежные вопросы