GarySB
asked on
RichTextBox Follow-Up (Idle_Mind)
I tried the code you wrote and it keeps giving me the same exact value for coordinates no matter where I click the mouse. pt always equals 269, so the color is always not blue.
Dim pt As Point = Calc_Pumps_RichTxtBx.Point ToClient(C ursor.Posi tion)
Entire Routine for reading multiple colored words:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim words() As String = {"cat", "dog", "fish", "hamster", "snake"}
Dim colors() As Color = {Color.Red, Color.Blue, Color.Green}
Dim R As New Random
For i As Integer = 1 To 50
AppendWord(words(R.Next(0, words.Length)), colors(R.Next(0, colors.Length)))
Next
End Sub
Private Sub AppendWord(ByVal word As String, ByVal clr As Color)
Calc_Pumps_RichTxtBx.Selec tionStart = Calc_Pumps_RichTxtBx.TextL ength
Calc_Pumps_RichTxtBx.Selec tionLength = 0
Calc_Pumps_RichTxtBx.Selec tionColor = clr
Calc_Pumps_RichTxtBx.Selec tedText = " " & word & " "
End Sub
Private Sub Calc_Pumps_RichTxtBx_Click (ByVal sender As Object, ByVal e As System.EventArgs) Handles Calc_Pumps_RichTxtBx.Click
Dim pt As Point = Calc_Pumps_RichTxtBx.Point ToClient(C ursor.Posi tion)
Dim index As Integer = Calc_Pumps_RichTxtBx.GetCh arIndexFro mPosition( pt)
Calc_Pumps_RichTxtBx.Selec tionStart = index
Calc_Pumps_RichTxtBx.Selec tionLength = 1
Dim clr As Color = Calc_Pumps_RichTxtBx.Selec tionColor
If clr.Equals(Color.Blue) Then
While Calc_Pumps_RichTxtBx.Selec tionStart > 0
Calc_Pumps_RichTxtBx.Selec tionStart = Calc_Pumps_RichTxtBx.Selec tionStart - 1
Calc_Pumps_RichTxtBx.Selec tionLength = Calc_Pumps_RichTxtBx.Selec tionLength + 1
If Not Calc_Pumps_RichTxtBx.Selec tionColor. Equals(clr ) Then
Calc_Pumps_RichTxtBx.Selec tionStart = Calc_Pumps_RichTxtBx.Selec tionStart + 1
Calc_Pumps_RichTxtBx.Selec tionLength = Calc_Pumps_RichTxtBx.Selec tionLength - 1
Exit While
End If
End While
While Calc_Pumps_RichTxtBx.Selec tionStart + Calc_Pumps_RichTxtBx.Selec tionLength < Calc_Pumps_RichTxtBx.TextL ength
Calc_Pumps_RichTxtBx.Selec tionLength = Calc_Pumps_RichTxtBx.Selec tionLength + 1
If Not Calc_Pumps_RichTxtBx.Selec tionColor. Equals(clr ) Then
Calc_Pumps_RichTxtBx.Selec tionLength = Calc_Pumps_RichTxtBx.Selec tionLength - 1
Exit While
End If
End While
Dim BlueWords As String = Calc_Pumps_RichTxtBx.Selec tedText.Tr im
Calc_Pumps_RichTxtBx.Selec tionLength = 0
Label1.Text = BlueWords
Else
Calc_Pumps_RichTxtBx.Selec tionLength = 0
Label1.Text = "{Not Blue}"
End If
Dim pt As Point = Calc_Pumps_RichTxtBx.Point
Entire Routine for reading multiple colored words:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim words() As String = {"cat", "dog", "fish", "hamster", "snake"}
Dim colors() As Color = {Color.Red, Color.Blue, Color.Green}
Dim R As New Random
For i As Integer = 1 To 50
AppendWord(words(R.Next(0,
Next
End Sub
Private Sub AppendWord(ByVal word As String, ByVal clr As Color)
Calc_Pumps_RichTxtBx.Selec
Calc_Pumps_RichTxtBx.Selec
Calc_Pumps_RichTxtBx.Selec
Calc_Pumps_RichTxtBx.Selec
End Sub
Private Sub Calc_Pumps_RichTxtBx_Click
Dim pt As Point = Calc_Pumps_RichTxtBx.Point
Dim index As Integer = Calc_Pumps_RichTxtBx.GetCh
Calc_Pumps_RichTxtBx.Selec
Calc_Pumps_RichTxtBx.Selec
Dim clr As Color = Calc_Pumps_RichTxtBx.Selec
If clr.Equals(Color.Blue) Then
While Calc_Pumps_RichTxtBx.Selec
Calc_Pumps_RichTxtBx.Selec
Calc_Pumps_RichTxtBx.Selec
If Not Calc_Pumps_RichTxtBx.Selec
Calc_Pumps_RichTxtBx.Selec
Calc_Pumps_RichTxtBx.Selec
Exit While
End If
End While
While Calc_Pumps_RichTxtBx.Selec
Calc_Pumps_RichTxtBx.Selec
If Not Calc_Pumps_RichTxtBx.Selec
Calc_Pumps_RichTxtBx.Selec
Exit While
End If
End While
Dim BlueWords As String = Calc_Pumps_RichTxtBx.Selec
Calc_Pumps_RichTxtBx.Selec
Label1.Text = BlueWords
Else
Calc_Pumps_RichTxtBx.Selec
Label1.Text = "{Not Blue}"
End If
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Uh...ok. Glad I could "help"... =)
ASKER