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
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
Found = frmMain.rtxt.Find(txtFind.Text, frmMain.rtxt.SelStart, , chkWholeWord.Value * 2 + chkMatchCase.Value * 4)原因是richtextbox的find方法不支持中文
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