RichTextBox中的文本为中文时查找中文查到第二个就不往下走了,请问高手这是怎么回事?以下 rtxt 为一RichTextBoxPrivate Sub cmdFindNext_Click()
    Dim Found As Integer     '是否找到
        
    '设置开始查找的位置
    If FirstTime Then   '第一次查找
        If txtFind.Text = frmMain.rtxt.SelText Then '所选及所要找的,直接查找下一个
            frmMain.rtxt.SelStart = frmMain.rtxt.SelStart + 1
            FirstTime = False
        Else
            frmMain.rtxt.SelStart = frmMain.rtxt.SelStart
            FirstTime = False
        End If
    Else    '不是第一次查找
        frmMain.rtxt.SelStart = frmMain.rtxt.SelStart + 1
    End If    '开始查找
    Found = frmMain.rtxt.Find(txtFind.Text, frmMain.rtxt.SelStart, , chkWholeWord.Value * 2 + chkMatchCase.Value * 4)
    
    '如果未找到要查找的文本
    If Found = -1 Then
        MsgBox "已经完成查找,往下已找不到要查找的字符", 64, "查找完成"
        frmMain.rtxt.SelStart = 0
        FirstTime = True
    End If
End Sub

解决方案 »

  1.   

    问题出在这一句:
    Found = frmMain.rtxt.Find(txtFind.Text, frmMain.rtxt.SelStart, , chkWholeWord.Value * 2 + chkMatchCase.Value * 4)原因是richtextbox的find方法不支持中文
      

  2.   

    Private Sub Command1_Click()
        Static i As Long
        If Len(Text1.Text) = 0 Then
            Exit Sub
        End If
        i = InStr(i + 1, RichTextBox1.Text, Text1.Text)
        Debug.Print i
        If i = 0 Then
            MsgBox "已经完成查找,往下已找不到要查找的字符"
            Me.RichTextBox1.SetFocus
        Else
            Me.RichTextBox1.SetFocus
            Me.RichTextBox1.SelStart = i - 1
            Me.RichTextBox1.SelLength = Len(Text1.Text)
        End If
    End Sub