2014-01-21 1 views
1

Например, у меня есть текстовое поле, содержащее следующее:Как я могу выбрать всю строку/строку при нажатии на строке в текстовом поле в C#

aaa 
bbb 
ccc 

теперь, когда я нажимаю на одном из элементов а на в первой строке, я хочу, чтобы он автоматически выбирал целое, а затем копировал его в другое текстовое поле, как бы я обошел это делать.
Просто для уточнения. Если я выбираю a в первой строке, aaa будет скопирован в другое текстовое поле.

Кстати, это текстовое поле Rich.

Я положил начало кода ниже, потому что по какой-то причине он не позволил мне опубликовать вопрос.

Private void richTextBox1_MouseClick(object sender, MouseEventArgs e) 
{ 
} 
+0

Вам действительно нужен текстовое поле? То, что я понимаю в вашем вопросе, заключается в том, что вы не позволяете пользователю вводить текстовое поле. В этом случае вы должны заменить текстовое поле простым списком! –

+0

WinForm? WPF? ASP.Net? WTF.Net? –

+0

Стив, спасибо, я такой идиот, не могу поверить, что я этого не сделал ... – Bodokh

ответ

0
// now you need to know what character index starts that line 
var start = textBox.GetFirstCharIndexOfCurrentLine(); 

// and with the line already in hand we can calculate the ending index 
var end = start + textBox.Lines(textBox.GetLineFromCharIndex(start)).Length; 

// now select that range 
textBox.Select(start, end); 
+0

Спасибо! Но я не могу использовать .length on line. – Bodokh

+0

@ Bodokh, см. Мое редактирование. –

0

Я пытался сделать что-то подобное с контролем RichTextBox, а затем я с радостью обнаружил свойство ShowSelectionMargin. Если установлено значение «Истина», это дает вам левое поле, на которое вы можете щелкнуть, чтобы выбрать всю строку (это было именно то, что я хотел).

Не совсем то, о чем просил OP, но, возможно, относится к другим, кто ищет такую ​​функциональность.

Смежные вопросы