朋友们,我在使用RichTextBox控件时遇到一个令人不解的问题,请指教!变量说明:  SearchStart:查找的开始位置  SearchTxt:要查找的字符串  FoundPos :字符串所在位置程序目的:  实现“查找下一个”代码如下:  FoundPos = Me.RichTextBox.Find(SearchTxt, SearchStart)
遇到的问题:  不管如何改变SearchStart的值,FoundPos 始终停留在SearchTxt在文本框第一次出现的地方。
  是我的电脑问题?还是其它问题?  唉!这个问题困扰着我10个小时了,一直搞不明白!  请朋友们帮助解答,谢了!

解决方案 »

  1.   

    你把代码贴出来,find方法有bug是不假,但不至于出现你说的情况
      

  2.   

    谢谢楼上的朋友,请你帮忙看看。 我特意编写了一个试例,完整的程序如下:新建一窗体,在其上放置:
    1、richtextbox 命名为:RichTxtBox
    2、放置一个TextBox 命名为:txtSearch
    3、放置两个CommandButton  分别命名为:CmdSearchNew 和 cmdSearchNext复制下面的代码:
    -----------------
    Option ExplicitPrivate Sub SearchTxt() '查找文本
      Dim SearchTxt As String
      Static FoundPos As Long, RichTxtSearchStart As Long
       SearchTxt = Me.txtSearch.Text '待查找的字符串
       RichTxtSearchStart = FoundPos + Len(SearchTxt)
       If Me.Tag = "NewSearch" Then
         FoundPos = 0 '新查找
         RichTxtSearchStart = 0 '新查找
       End If
       FoundPos = Me.RichTxtBox.find(SearchTxt, RichTxtSearchStart)  '查找字符在文本中的位置。
      If FoundPos = -1 Then '如果所指定的文本没有找到,Find 方法则返回 -1
          MsgBox "没有找到 “" & SearchTxt & "”。", 48
          Exit Sub
       End If
       Me.RichTxtBox.SelStart = FoundPos
       Me.RichTxtBox.SelLength = Len(SearchTxt)
       Exit Sub
    SearchError:
      '
    End SubPrivate Sub CmdSearchNew_Click()
      Me.Tag = "NewSearch"
      SearchTxt
    End SubPrivate Sub cmdSearchNext_Click()
      Me.Tag = ""
      SearchTxt
    End SubPrivate Sub Form_Load()
      Me.RichTxtBox.HideSelection = False
    End Sub  ------------------------
     你在Richtextbox中粘贴下面这些字符,并按“下一个”查找“t”试一下,后面的"t"根本就搜索不到了。
     RichTextBox1花园RichTextBox1花园RichTextBox1
    ------------------------
    希望朋友们来讨论一下,看如何解决这一问题。