Установка курсора в конце любого текстового поля
У меня есть текстовое поле с отображаемой в нем строкой.
Чтобы привести курсор в текстовое поле, которое я уже делаю
txtbox.Focus();
Но как мне получить курсор в конце строки в текстовом поле?
Ответы
Ответ 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