如何用VB实现记事本的“转到”功能,急需,向高手求教。

解决方案 »

  1.   

    Sub GotoLine(ByVal LineNumber As Long)
        Dim a() As String
        Dim i As Long
        
        If LineNumber <= 0 Then GoTo BadLineNumber
        If LineNumber = 1 Then GoTo DoGoto '第一行直接定位在开始
        a = Split(Text1.Text, vbCrLf)
        If LineNumber > (UBound(a) + 1) Then GoTo BadLineNumber
        ReDim Preserve a(LineNumber - 2)
        i = Len(Join(a, vbCrLf)) + 2
    DoGoto:
        With Text1
            .SelStart = i
            .SelLength = 0
        End With
        Exit Sub
    BadLineNumber:
        MsgBox "行数超过范围"
    End Sub
      

  2.   

    用API最简单了。Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As LongPrivate Const EM_LINEINDEX = &HBBPrivate Sub Command1_Click()
        Text1.SelStart = SendMessage(Text1.hwnd, EM_LINEINDEX, CLng(5), CLng(0))
    End Sub