Подтвердить что ты не робот

Установка курсора в конце любого текстового поля

У меня есть текстовое поле с отображаемой в нем строкой. Чтобы привести курсор в текстовое поле, которое я уже делаю

txtbox.Focus();

Но как мне получить курсор в конце строки в текстовом поле?

4b9b3361

Ответ 1

Вы можете управлять позицией курсора (и выбором) с помощью свойств txtbox.SelectionStart и txtbox.SelectionLength. Если вы хотите, чтобы каретка закончилась, попробуйте это:

txtbox.SelectionStart = txtbox.Text.Length -1 // add some logic if length is 0
txtbox.SelectionLength = 0

Для WPF см. этот пост.

Ответ 2

Существует несколько вариантов:

txtBox.Focus();
txtBox.SelectionStart = txtBox.Text.Length;

ИЛИ

txtBox.Focus();
txtBox.CaretIndex = txtBox.Text.Length;

ИЛИ

txtBox.Focus();
txtBox.Select(txtBox.Text.Length, 0);

Ответ 3

Вы можете установить положение каретки с помощью TextBox.CaretIndex. Если вам нужно только установить курсор в конец, вы можете просто передать длину строки, например:

txtBox.CaretIndex=txtBox.Text.Length;

Вам нужно установить индекс каретки по длине, а не по длине-1, потому что это поместит каретку перед последним символом.

Ответ 4

Попробуйте, как показано ниже... это поможет вам...

Некоторое время в Window Form Focus() работает неправильно. Поэтому вы можете использовать Select() для фокусировки текстового поля.

txtbox.Select(); // to Set Focus
txtbox.Select(txtbox.Text.Length, 0); //to set cursor at the end of textbox