请教:如何将RichTextBox1中的某些不确定位置的相同字用同一种颜色显示,再将另一些不确定位置的另一字用另外一种颜色显示?
    我搜遍了网络,只有一个提问与我想要的结果接近,提问如下:
    检索RichTextBox1中的字符串,并将检索内容中的所有的(不是第一个)特定字符用红色显示。网友的回答如下:
  Option   Explicit       
  Private   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   Sub   
    
  Private   Sub   Form_Load()   
          RichTextBox1.Text   =   "中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国"   
          RichTextSearch   RichTextBox1,   "中华",   vbRed   
  End   Sub       我试了一下,该方法能实现将RichTextBox1中的某些不确定位置的相同字用同一种颜色显示,但不能实现再将另一些不确定位置的另一字用另外一种颜色显示。
    我现在想请教各位朋友,以示例中 "中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国"   为例,如何实现将示例中所有“中”字用红色显示,“人”字用黄色显示,“共”字用蓝色显示等等(或者将示例中所有“中”字,“人”字,“共”字都用红色显示),请给出代码,一定加分,感谢!

解决方案 »

  1.   

    Private Sub Form_Load()
              RichTextBox1.Text = "中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国"
       RichTextBox1.SelStart = 0
            RichTextBox1.SelLength = 3
           RichTextBox1.SelColor = vbGreen
           RichTextBox1.SelStart = 4
            RichTextBox1.SelLength = 5
           RichTextBox1.SelColor = vbRed
            RichTextBox1.SelStart = 9
            RichTextBox1.SelLength = 4
           RichTextBox1.SelColor = vbBlue
            RichTextBox1.SelStart = 15
            RichTextBox1.SelLength = 7
           RichTextBox1.SelColor = vbYellow
           RichTextBox1.SelStart = 25
            RichTextBox1.SelLength = 7
           RichTextBox1.SelColor = vbRed
      End Sub
      

  2.   

    感谢楼上朋友的回复,我想要的是针对不确定位置的特定字改变颜色,拿以上示例来说,“中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国”这段字只是RichTextBox1中的某一段字,“中”字并不是在文字部分的开头,具体在什么位置是不固定的。
      

  3.   

    感谢楼上朋友的回复,我想要的是针对不确定位置的特定字改变颜色,拿以上示例来说,“中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国”这段字只是RichTextBox1中的某一段字,“中”字并不是在RichTextBox1.Text文字部分的开头,具体在什么位置是不固定的。 
      

  4.   

    Private Sub Form_Load()
              RichTextBox1.Text = "中华人民共和国中华人民共和国中华人民共和国中华人民共和国中华人民共和国"
      For I = 1 To Len(RichTextBox1.Text)
      If Mid(RichTextBox1.Text, I, 1) = "中" Then
      RichTextBox1.SelStart = I - 1
            RichTextBox1.SelLength = 1
           RichTextBox1.SelColor = vbRed
           End If
           Next  End Sub
      

  5.   

    感谢SYSSZ兄台,及各位参与者,是该结贴了。再次感谢SYSSZ兄台!