.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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.909 из 5