2012-05-24 2 views
0

У меня есть только RichTextBox для чтения в моем пользовательском интерфейсе. Я хочу сделать так, чтобы при щелчке мышью по строке текста мы выбираем или выделяем всю строку. Только эта строка была нажата.Как выбрать строку в RichTextBox щелчком мыши?

Как вы это делаете?

ответ

2

RichTextBox имеет все методы, вам нужно, вы просто нужно несколько из них. Прежде всего, необходимо сопоставить положение мыши с индексом символа:

Private Sub RichTextBox1_MouseDown(ByVal sender As Object, ByVal e As MouseEventArgs) 
    Dim box = DirectCast(sender, RichTextBox) 
    Dim index = box.GetCharIndexFromPosition(e.Location) 

Затем вам нужно отобразить индекс символа в строке:

Dim line = box.GetLineFromCharIndex(index) 

Тогда вам нужно выяснить, где начинается линия:

Dim lineStart = box.GetFirstCharIndexFromLine(line) 

Затем вам нужно выяснить, где она заканчивается, что начало следующей строки минус один:

Dim lineEnd = box.GetFirstCharIndexFromLine(line + 1) - 1 

Тогда вам нужно сделать выбор:

box.SelectionStart = lineStart 
    box.SelectionLength = lineEnd - lineStart 

Сведение:

Private Sub RichTextBox1_MouseDown(ByVal sender As Object, ByVal e As MouseEventArgs) Handles RichTextBox1.MouseDown 
    Dim box = DirectCast(sender, RichTextBox) 
    Dim index = box.GetCharIndexFromPosition(e.Location) 
    Dim line = box.GetLineFromCharIndex(index) 
    Dim lineStart = box.GetFirstCharIndexFromLine(line) 
    Dim lineEnd = box.GetFirstCharIndexFromLine(line + 1) - 1 
    box.SelectionStart = lineStart 
    box.SelectionLength = lineEnd - lineStart 
End Sub 
+0

Я тебя люблю !!!!!! – Ron

0

Просто используйте следующий код в обработчик события щелчка

SendKeys.Send("{HOME}+{END}") 
+0

Я не хочу, чтобы выбрать все, я просто хочу, чтобы выделить строку я нажимаю. – Ron

+0

Посмотрите. Я обновил свой ответ. –