Results 1 to 2 of 2

Thread: RichText + color

  1. #1

    Thread Starter
    New Member
    Join Date
    Jul 2000
    Posts
    9

    Question

    I work with RichText box and i need to make a editor
    that replace the color of the word ?

  2. #2
    Guest
    Do you mean something similar to the VB source editor? If so, try this.

    Code:
    Option Explicit
    
    Private Sub HighlightText(sKeyword As String, iColour As Long)
    
        Dim nStart As Integer, sPrevChar As String, sNextChar As String
                                                   
        nStart = InStr(1, LCase(RichTextBox1.Text), sKeyword)
                                                                                          
        Do While nStart <> 0
        
            If nStart > 1 Then
                sPrevChar = Mid$(RichTextBox1.Text, nStart - 1, 1)
            Else
                sPrevChar = " "
            End If
                                                            
            If Len(RichTextBox1.Text) >= nStart + Len(sKeyword) Then
                sNextChar = Mid$(RichTextBox1.Text, nStart + Len(sKeyword), 1)
            Else
                sNextChar = " "
            End If
                                                               
            If (sPrevChar = Chr(32) Or sPrevChar = Chr(13) Or _
            sPrevChar = Chr(10) Or sPrevChar = Chr(9)) And _
            (sNextChar = Chr(32) Or sNextChar = Chr(13) Or _
            sNextChar = Chr(10) Or sNextChar = Chr(9)) Then
            
            With RichTextBox1
                .SelStart = nStart - 1
                .SelLength = Len(sKeyword)
                .SelColor = iColour
                'If you don't want the letters to be converted to uppercase, you
                'should the UCase brackets from the next line
                .SelText = UCase(sKeyword)
                .SelStart = Len(RichTextBox1.Text)
                .SelColor = vbBlack
            End With
        
            End If
                                                      
            nStart = InStr(nStart + Len(sKeyword), LCase(RichTextBox1.Text), sKeyword)
    
        Loop
    
    End Sub
    
    Private Sub Form_Resize()
    
        RichTextBox1.Move 0, 0, ScaleWidth, ScaleHeight
    
    End Sub
    
    Private Sub RichTextBox1_Change()
    
        With RichTextBox1
        .SelStart = 0
        .SelLength = Len(.Text)
        .SelColor = vbBlack
        .SelStart = Len(.Text)
        End With
                                           
        ' Add more custom words here
        HighlightText "blue", vbBlue
        HighlightText "red", vbRed
        HighlightText "magenta", vbMagenta
        HighlightText "green", vbGreen
         
    End Sub

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width