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

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

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

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

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

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

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

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

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

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

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

Ответы на вопрос(2)

Решение Вопроса

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

 Roman Starkov26 июл. 2009 г., 14:54
В самом деле. Спасибо за ссылку, это действительно кажется невозможным.

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

Ваш ответ на вопрос