Solved

Richtextbox text color

Posted on 2008-06-20
5
1,036 Views
Last Modified: 2008-09-12
I need to change the color of the added line color, but after three repetitions all line colors become the same.

You may see the function that adds new line to the richtextbox and assigns color to it.

When I run it four times with the settings you may see except the first line all lines become red.
Private Sub myworkerclass_AddDateTime(ByVal message As String, ByVal thecolor As System.Drawing.Color) Handles myworkerclass.AddDateTime
        Me.rtb_messages.Text = message & vbCrLf & Me.rtb_messages.Text
        Me.rtb_messages.Select(0, message.Length)
        Me.rtb_messages.SelectionColor = thecolor
    End Sub
 
        myworkerclass_AddDateTime("Test1!", Color.Purple)
        myworkerclass_AddDateTime("Test2!", Color.Red)
        myworkerclass_AddDateTime("Test3!", Color.YellowGreen)
        myworkerclass_AddDateTime("Test4!", Color.Tomato)

Open in new window

0
Comment
Question by:emresamisuzer
  • 2
  • 2
5 Comments
 
LVL 48

Expert Comment

by:jpaulino
ID: 21832301
Hi,

Try to change you sub to this:

    Private Sub myworkerclass_AddDateTime(ByVal message As String, ByVal thecolor As System.Drawing.Color) Handles myworkerclass.AddDateTime
        Me.rtb_messages.AppendText(message + vbNewLine)
        Me.rtb_messages.Select(Me.rtb_messages.Find(message), message.Length)
        MsgBox(Me.rtb_messages.SelectedText)
        Me.rtb_messages.SelectionColor = thecolor
    End Sub

Open in new window

0
 
LVL 85

Expert Comment

by:Mike Tomlinson
ID: 21832490
You can also do it this way:
    Private Sub myworkerclass_AddDateTime(ByVal message As String, ByVal thecolor As System.Drawing.Color) Handles myworkerclass.AddDateTime
        Me.rtb_messages.SelectionStart = Me.rtb_messages.TextLength
        Me.rtb_messages.SelectionColor = thecolor
        Me.rtb_messages.SelectedText = message & vbCrLf
    End Sub

Open in new window

0
 

Author Comment

by:emresamisuzer
ID: 21836666
Thanks for your responses but I need the appended text to be appended at the top line of the richtextbox. That is why I use the code:
Me.rtb_messages.Text = message & vbCrLf & Me.rtb_messages.Text
0
 
LVL 48

Accepted Solution

by:
jpaulino earned 500 total points
ID: 21836830
You can change it to this:
    Private Sub myworkerclass_AddDateTime(ByVal message As String, ByVal thecolor As System.Drawing.Color) Handles myworkerclass.AddDateTime
        With Me.rtb_messages
            .SelectedText = IIf(.SelectedText = String.Empty, message & vbNewLine, message & vbNewLine & .SelectedText)
            .Select(.Find(message), message.Length)
            .SelectionColor = thecolor
        End With
    End Sub

Open in new window

0
 
LVL 85

Expert Comment

by:Mike Tomlinson
ID: 21838228
Mine would be:
    Private Sub myworkerclass_AddDateTime(ByVal message As String, ByVal thecolor As System.Drawing.Color) Handles myworkerclass.AddDateTime
        Me.rtb_messages.SelectionStart = 0
        Me.rtb_messages.SelectionLength = 0
        Me.rtb_messages.SelectionColor = thecolor
        Me.rtb_messages.SelectedText = message & vbCrLf
    End Sub

Open in new window

0

Featured Post

Announcing the Most Valuable Experts of 2016

MVEs are more concerned with the satisfaction of those they help than with the considerable points they can earn. They are the types of people you feel privileged to call colleagues. Join us in honoring this amazing group of Experts.

Question has a verified solution.

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

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 …
Today I had a very interesting conundrum that had to get solved quickly. Needless to say, it wasn't resolved quickly because when we needed it we were very rushed, but as soon as the conference call was over and I took a step back I saw the correct …
This Micro Tutorial will give you a basic overview how to record your screen with Microsoft Expression Encoder. This program is still free and open for the public to download. This will be demonstrated using Microsoft Expression Encoder 4.
With Secure Portal Encryption, the recipient is sent a link to their email address directing them to the email laundry delivery page. From there, the recipient will be required to enter a user name and password to enter the page. Once the recipient …

808 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