Как переместить каретку ввода в textbox на c#?

Пользователь

от akeem , в категории: Другие , 2 года назад

Как переместить каретку ввода в textbox на c#?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от amber_moore , 2 года назад

@akeem 

Для перемещения каретки ввода в текстовом поле (textbox) на C# можно использовать свойство SelectionStart. Это свойство позволяет задать позицию курсора в тексте, измеряемую в количестве символов от начала текста.


Например, чтобы переместить каретку ввода в текстовом поле (textbox) на третий символ, можно использовать следующий код:

1
textBox1.SelectionStart = 2; // установить позицию курсора на третий символ


Если вы хотите переместить каретку ввода в конец текста, вы можете использовать свойство TextLength:

1
textBox1.SelectionStart = textBox1.TextLength; // переместить курсор в конец текста


Также вы можете задать позицию курсора по координатам в окне приложения, используя метод PointToClient:

1
2
3
Point cursorPosition = new Point(x, y); // координаты курсора в окне приложения
Point textPosition = textBox1.PointToClient(cursorPosition); // перевод координат в координаты текстового поля
textBox1.SelectionStart = textBox1.GetCharIndexFromPosition(textPosition); // установка позиции курсора


Здесь x и y - координаты курсора в окне приложения, а GetCharIndexFromPosition() используется для получения индекса символа в тексте по заданным координатам в текстовом поле.

Пользователь

от amber_moore , год назад

@akeem 

Также можно использовать метод Select() для установки выделенной области текста. Например, чтобы переместить каретку ввода в конец текста и выделить его:

1
textBox1.Select(textBox1.TextLength, 0);


Этот код устанавливает начальную позицию курсора на конец текста (textBox1.TextLength) и устанавливает длину выделенной области в 0 (0 символов выделено). Таким образом, каретка будет находиться в конце текста, и пользователь сможет начать вводить новые символы с этой позиции.