Richtextbox - Need to capture color of text character

don2347
don2347 used Ask the Experts™
on
I am converting a vb6 program to vb.net and am having a problem with the richtextbox control contained in the program.

In vb6, the user can enter text into a richtextbox and then highlight different characters.  During a pricing routine, this allows the calculation to distinguish between two different "types" of characters.

In vb6, this was the code:

      txtCopy.SelStart = Y - 1
      txtCopy.SelLength = 1
      If txtCopy.SelColor = RGB(255, 0, 0) Then...

In vb.net, I changed selstart to selectionstart and sellength to selectionlength.  I cannot find any replacement for selcolor that works with trying to capture the color of a character.
Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
Hi don2347,

txtCopy.SelectionColor did not work for you??

Cheers!

Author

Commented:
The code "If txtCopy.SelectionColor = color.red..." produces this error"operator '=' is not defined for types 'System.Drawing Color' and 'System.Drawing Color'."

It appears the txt.selectioncolor is used to set the color, but not read the color property.
don2347,

That's strange.  What version are you using.  It works fine in VB 2005

Author

Commented:
vb.net 2003, version 7.1.3088
Fernando SotoRetired
Distinguished Expert 2017

Commented:
Hi don2347;

Try it this way

        txtCopy.SelectionStart = Y - 1
        txtCopy.SelectionLength = 1
        If txtCopy.SelectionColor = Color.Red Then
            MessageBox.Show("Red")
        Else
            MessageBox.Show("NOT Red")
        End If


Fernando

Author

Commented:
Thanks.  I add that code and get the compile error:

C:\vb.net\Hotels\Hotels\Menu.vb(4020): Operator '=' is not defined for types 'System.Drawing.Color' and 'System.Drawing.Color'.

Author

Commented:
I should mention that the error is on the code:
txtCopy.SelectionColor = Color.Red
rvidal393,
One more thing to try:

if txtCopy.SelectionColor.equals(color.red) then
Fernando SotoRetired
Distinguished Expert 2017

Commented:
Hi don2347;

It always helps to know what version of Visual Studio you are working in.

This Code will work for VB .Net 2003

        txtCopy.SelectionStart = Y - 1
        txtCopy.SelectionLength = 1

        If txtCopy.SelectionColor.Equals(Color.Red) Then
            MessageBox.Show("Red")
        Else
            MessageBox.Show("NOT Red")
        End If

This Code will work for VB .Net 2005 Only

        txtCopy.SelectionStart = Y - 1
        txtCopy.SelectionLength = 1
        If txtCopy.SelectionColor = Color.Red Then
            MessageBox.Show("Red")
        Else
            MessageBox.Show("NOT Red")
        End If


Fernando

Author

Commented:
I meant to split the points - sorry Fernando.  Thank you for your help.

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial