Я хочу иметь возможность выделять (выбирать) текст в RichTextBox, не затрагивая текущий .SelectionBackColor или .SelectionColor
У меня есть RichTextBox, содержащий много текста.
У меня естьListView, содержащий список строк / слов, которые имеют разные .BackColor и .ForeColor в ListView.
Я перебираю элементы ListView и выделяю соответствующий текст в RichTextBox, используя .SelectionBackColor и .SelectionColor, устанавливая цвет текстадля соответствия .BackColor и .ForeColor из ListView.
For Each verItem As ListViewItem In lvVer.Items
startindex = 0
While startindex < rtbMain.TextLength
Dim wordStartIndex As Integer = rtbMain.Find(verItem.Text, startindex, RichTextBoxFinds.None)
If wordStartIndex <> -1 Then
rtbMain.SelectionStart = wordStartIndex
rtbMain.SelectionLength = verItem.Text.Length
rtbMain.SelectionBackColor = verItem.BackColor
rtbMain.SelectionColor = verItem.ForeColor
Else
Exit While
End If
startindex += wordStartIndex + verItem.Text.Length
End While
Next
Все это прекрасно работает, но я хочу иметь возможность выбрать элемент в списке и затем выделить соответствующий текстовый объект в RichTextBox с помощьюстандартные цвета подсветки (синий фон, белый текст) при сохранении моих исходных цветов.
Если я использую мышь для выделения текста в RichTextBox, он временно подсвечивается обычным способом окон (синий фон,белый текст).Если я затем щелкну мышью где-нибудь еще в RichTextBox, исходный цвет, который я установил для строки, все еще там.Я хочу повторить это поведение в коде.
Если «выделить» текст с помощью кода rtbMain.Select(wordStartIndex, verItem.Text.Length)
, он не будет выделен.Это даже не кажется выбранным визуально либо.Очевидно, что я могу установить новые .SelectionBackColor и .SelectionColor, но тогда я потеряю свои исходные цвета.
Есть ли способ прокрутить мышь над текстом RichTextBox программно и выделять и выделять текст, не затрагивая основнойоригинальные цвета?