Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

Change color of specific value in a richtexbox

Posted on 2013-06-27
3
Medium Priority
?
174 Views
Last Modified: 2013-06-27
I am attempting to use the following code to change the color of all the 1s in my field.
The field looks like this.
0010 1110 0000 1010 0001 1111 1000 0000 0110

The whole field ends up red instead of just the 1s.

Private Sub HighLightWords(ByVal Bitmap As String, ByVal myColor As Color)
        ''http://www.vbforums.com/showthread.php?125371-Change-Text-Color-and-Font-Character-by-Character
        Dim strWord As String
        Dim lPos As Long
 
        strWord = "1"
        If Bitmap = "Bitmap1" Then
            lPos = InStr(1, Me.txtBinary1.Text, strWord, vbTextCompare)
 
            If lPos > 0 Then
                With txtBinary1
                    .SelectionStart = lPos - 1
                    .SelectionLength = Len(strWord)
                    .SelectionColor = myColor
                    .SelectionStart = Len(Me.txtBinary1.Text)
                End With
            End If
        Else
            lPos = InStr(1, Me.txtBinary2.Text, strWord, vbTextCompare)
            If lPos > 0 Then
                With txtBinary2
                    .SelectionStart = lPos - 1
                    .SelectionLength = Len(strWord)
                    .SelectionColor = myColor
                    .SelectionStart = Len(Me.txtBinary2.Text)
                End With
            End If
        End If
End sub
0
Comment
Question by:WINN2012
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
3 Comments
 
LVL 42

Accepted Solution

by:
Meir Rivkin earned 2000 total points
ID: 39281118
this code will color all the 1s in red:
Dim i = 0
        For Each c In Me.txtBinary1.Text
            If c = "1"c Then
                With RichTextBox1
                    .SelectionStart = i
                    .SelectionLength = 1
                    .SelectionColor = Drawing.Color.Red
                End With
            End If
            i = i + 1
        Next

Open in new window

0
 
LVL 42

Expert Comment

by:Meir Rivkin
ID: 39281137
here's your function:

    Private Sub HighLightWords(ByVal Bitmap As String, ByVal myColor As Color)
        Dim i = 0
        Dim ctrl As RichTextBox

        If Bitmap = "Bitmap1" Then
            ctrl = Me.txtBinary1.Text

        Else
            ctrl = Me.txtBinary2.Text
        End If

        For Each c In ctrl.Text
            If c = "1"c Then
                With ctrl
                    .SelectionStart = i
                    .SelectionLength = 1
                    .SelectionColor = myColor
                End With
            End If
            i = i + 1
        Next

    End Sub

Open in new window

0
 

Author Closing Comment

by:WINN2012
ID: 39281923
Worked like a champ..tyvm
I think I couldnt get it to work because I was not incrementing the counter. So it just started over again.

I do have a hiccup though, the first time i run the code it works and all 1s are red as desired, if I make a change on my form which triggers the code again, the entire line is red again.
I'm sure I'll figure it out.

MW
0

Featured Post

Enroll in October's Free Course of the Month

Do you work with and analyze data? Enroll in October's Course of the Month for 7+ hours of SQL training, allowing you to quickly and efficiently store or retrieve data. It's free for Premium Members, Team Accounts, and Qualified Experts!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

A while ago, I was working on a Windows Forms application and I needed a special label control with reflection (glass) effect to show some titles in a stylish way. I've always enjoyed working with graphics, but it's never too clever to re-invent …
It’s quite interesting for me as I worked with Excel using vb.net for some time. Here are some topics which I know want to share with others whom this might help. First of all if you are working with Excel then you need to Download the Following …
Want to learn how to record your desktop screen without having to use an outside camera. Click on this video and learn how to use the cool google extension called "Screencastify"! Step 1: Open a new google tab Step 2: Go to the left hand upper corn…
Loops Section Overview
Suggested Courses

610 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question