非常感谢

解决方案 »

  1.   

    用find方法的话,没有办法不过你可以调用api函数,用sendmessage发送EM_FINDTEXTEX消息就可以了
      

  2.   

    如果api函数不熟的话,用vb提供的instr函数也可以实现,当然,效率就要低一些了
      

  3.   

    http://www.cnpopsoft.com/blog/article.asp?id=3
      

  4.   

    用API函数“SendMessage”,可以的,而且,对大型的文本文件的查找速度很快
      

  5.   

    程序代码如下:Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As FINDTEXTEX) As LongPublic Const FR_DOWN = &H1
    Public Const FR_MATCHCASE = &H4
    Public Const FR_WHOLEWORD = &H2
    Public Const FR_REPLACE = &H10
    Public Const FR_REPLACEALL = &H20
    Public Const FR_NOWHOLEWORD = &H1000
    Public Const FR_NOUPDOWN = &H400
    Public Const FR_NOMATCHCASE = &H800Public Const WM_USER = &H400
    Public Const EM_FINDTEXT = WM_USER + 56
    Public Const EM_FINDTEXTEX = WM_USER + 79
    Public Const EM_EXSETSEL = WM_USER + 55
    Public Const EM_SETTEXTEX = WM_USER + 97Type charrange
        cpMin As Long
        cpMax As Long
    End Type'and lParam is a findtext structure:
    Type FINDTEXTEX
      chrg As charrange
      lpstrText As String
      chrgText As charrange
    End Type
    ‘----------------------------------------------
    ’要先定义窗体级变量
      Dim FindStar As Long
    ’----------------------------------------------
    Private Sub Command1_Click()
      Dim fText As FINDTEXTEX
      Dim cRange As charrange
      Dim chrgText As charrange
      Dim Textf As FINDTEXTEX
      If FindStar = -1 Or FindStar = 0 Then
        FindStar = 0
      Else
        FindStar = FindStar + 1
      End If
      With cRange
         .cpMin = FindStar
         .cpMax = LenB(StrConv(Form1.RichTextBox.Text, vbFromUnicode))
      End With
      With fText
         .chrg = cRange
         .lpstrText = TextFind.Text
         '.chrgText = cRange
      End With
      lreturn = SendMessage(Form1.RichTextBox.hwnd, EM_FINDTEXTEX, FR_DOWN, fText)
      With Textf
         .chrg = fText.chrgText
         .lpstrText = TextFind.Text
         .chrgText = fText.chrgText
      End With
      SendMessage Form1.RichTextBox.hwnd, EM_EXSETSEL, 0, Textf
      FindStar = Textf.chrgText.cpMin
    End Sub