Option ExplicitPrivate Sub RichTextSearch(ByVal objName As RichTextLib.RichTextBox, ByVal strSearchText As String, Optional ByVal clrSelColor As stdole.OLE_COLOR = vbBlue)
Dim lngTmp As Long, lngPos As Long, strTmp As String, intLength As Integer Screen.MousePointer = vbHourglass
objName.SelStart = 0
objName.SelLength = Len(objName.Text)
objName.SelColor = vbBlack
objName.SelLength = 0
strTmp = objName.Text
If Trim(strSearchText) <> Empty And strTmp <> Empty Then
intLength = Len(strSearchText)
lngTmp = InStr(1, strTmp, strSearchText)
lngPos = lngTmp
Do While lngTmp > 0
objName.SelStart = lngPos - 1
objName.SelLength = intLength
objName.SelColor = clrSelColor
strTmp = Mid(strTmp, lngTmp + 1)
lngTmp = InStr(1, strTmp, strSearchText)
lngPos = lngPos + lngTmp
Loop
End If
Screen.MousePointer = vbDefault
End SubPrivate Sub Form_Load()
RichTextBox1.Text = "中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国"
RichTextSearch RichTextBox1, "中华", vbRed
End Sub
要这种效果是吧?
Dim lngTmp As Long, lngPos As Long, strTmp As String, intLength As Integer Screen.MousePointer = vbHourglass
objName.SelStart = 0
objName.SelLength = Len(objName.Text)
objName.SelColor = vbBlack
objName.SelLength = 0
strTmp = objName.Text
If Trim(strSearchText) <> Empty And strTmp <> Empty Then
intLength = Len(strSearchText)
lngTmp = InStr(1, strTmp, strSearchText)
lngPos = lngTmp
Do While lngTmp > 0
objName.SelStart = lngPos - 1
objName.SelLength = intLength
objName.SelColor = clrSelColor
strTmp = Mid(strTmp, lngTmp + 1)
lngTmp = InStr(1, strTmp, strSearchText)
lngPos = lngPos + lngTmp
Loop
End If
Screen.MousePointer = vbDefault
End SubPrivate Sub Form_Load()
RichTextBox1.Text = "中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国"
RichTextSearch RichTextBox1, "中华", vbRed
End Sub
要这种效果是吧?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货