.NET 4.x Получить слово под курсором мыши в RichTextBox - Visual Basic .NET
Формулировка задачи:
Всем знатокам доброго времени суток!
Пытаюсь получить слово под курсором мыши. Если курсор установить на слово в середине текста, то тут небольшие проблемы - через InStr и InStrRev я их решаю. Но если поставить курсор на слово в начале текста, в начале предложения, в конце текста, в конце предложения или на отдельном слове, то тут начинаются проблемы. Вот код:Помогите, знатоки!
Спасибо за понимание.
Решение задачи: «.NET 4.x Получить слово под курсором мыши в RichTextBox»
textual
Листинг программы
Private Sub RichTextBox1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles RichTextBox1.MouseUp Dim startPosition, endPosition As Integer, t As String Dim separators() As Char = {" "c, "."c, ","c, "?"c, "!"c, vbCr, vbTab, vbLf} ' символы разделители endPosition = RichTextBox1.GetCharIndexFromPosition(e.Location) RichTextBox1.SelectionStart = 0 RichTextBox1.SelectionLength = RichTextBox1.TextLength RichTextBox1.SelectionBackColor = Color.White RichTextBox1.SelectionColor = Color.Black RichTextBox1.SelectionFont = New Font("Verdana", 10, FontStyle.Regular) If e.Clicks = 1 And e.Button = MouseButtons.Left Then t = RichTextBox1.Text For startPosition = endPosition - 1 To 0 Step -1 If separators.Contains(t(startPosition)) Then Exit For End If Next startPosition += 1 For endPosition = endPosition To t.Length - 1 If separators.Contains(t(endPosition)) Then Exit For End If Next RichTextBox1.SelectionStart = startPosition RichTextBox1.SelectionLength = endPosition - startPosition If RichTextBox1.SelectionLength Then RichTextBox1.SelectionBackColor = Color.LightGray RichTextBox1.SelectionColor = Color.Red RichTextBox1.SelectionFont = New Font("Verdana", 12, FontStyle.Bold) End If End If End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д