Вопрос по winforms, .net – Как выделить текст в текстовом поле с кареткой, расположенной в начале выборки?

0

Я используюSystem.Windows.Forms.TextBox, С помощью клавиатуры можно выбрать текст таким образом, чтобы каретка располагалась наstart выбора - удерживая Shift и перемещая каретку влево.

Я хотел бы сделать то же самое программно.

Например, предположим, у меня есть текстовое поле с текстом «Пример текста». Я хотел бы, чтобы "образец" слово, которое будет выбрано, и курсор, который должен быть расположен непосредственно перед символом & quot; s & quot; в «образце».

Если я сделаю это:

textbox.SelectionStart = 5;
textbox.SelectionLength = 6;

затем я выбираю слово, но знак вставляется сразу после "e" в «образце».

Если я сделаю это:

textbox.SelectionStart = 11;
textbox.SelectionLength = -6;

Я получаю исключение.

Как я могу расположить каретку в начале выбора?

Ваш Ответ

2   ответа
2

MSDN Родные элементы управления Windows отображают мигающую карету в конечной позиции независимо от относительных значений начала и конца.

В самом деле. Спасибо за ссылку, это действительно кажется невозможным. Roman Starkov
1

textbox.select(11, 0);
SendKeys.Send("+{LEFT}+{LEFT}+{LEFT}+{LEFT}+{LEFT}+{LEFT}");
Проблема в том, что если у вас есть какая-либо логика обработки клавиатуры вокруг текстового поля, она вызывается для каждой из этих симулируемых клавиш.

Похожие вопросы