Если ваш текст в TextBox
или RichTextBox
, вы можете выбрать элемент управления и поместить курсор с помощью
// Set the cursor into the text box
bodyTextBox.Focus();
// Place the cursor at the desired position in the text
bodyTextBox.Select(start, 0);
. Вы должны выяснить, где начинается третья строка
const int indent = 30; // Desired indentation
// Place focus in this control
bodyTextBox.Focus();
// The following work only if we have at least 3 lines of text
if (bodyTextBox.Lines.Length >= 3) {
int start = bodyTextBox.Lines[0].Length + // Length of first line
bodyTextBox.Lines[1].Length + // Length of second line
4 + // 2 x 2 characters for two CR-LFs
Math.Min(indent, bodyTextBox.Lines[2].Length);
bodyTextBox.Select(start, 0);
}
Я предполагаю, что текст выглядит следующим образом
First line of text.<CR><LF>
Second line of text.<CR><LF>
<30 spaces for indent>
^ desired position
Чтобы установить курсор в нужном месте, нам нужно посчитать общее количество символов от начала текста.Поскольку вы хотите поместить курсор на третью строку, это длина двух первых строк плюс два CR-LF (символы разрыва строки) в их конце плюс 30 символов в начале третьей строки.Если третья строка имеет длину менее 30 символов, мы не можем поместить курсор туда, поэтому мы помещаем ее как можно дальше вправо, то есть на последний символ этой строки с Math.Min(indent, bodyTextBox.Lines[2].Length);
Наконец, мыпоместите курсор туда с помощью Select
.Поскольку мы не хотим выделять текст, мы определяем длину выделения как ноль.