Почему курсор ввода TextBox переходит на начало текста после ввода? - PullRequest
0 голосов
/ 16 января 2019

У меня есть пользовательский элемент управления, он содержит изображение и TextBox, после ввода в текстовое поле курсор, как курсор, переходит к началу текста в текстовом поле, как я могу отладить, почему это происходит? Я знаю, что этот код может поставить каретку в начале: textBox1.Select (0, 0); Но у меня нет такого кода, и я попытался textBox1.Select (text.Length-1, 0), это поместит курсор в конец текста. Как я могу убедиться, что каретка находится после последнего ввода независимо от того, где находится последняя буква ввода?

1 Ответ

0 голосов
/ 17 января 2019

Если вы измените свойство Text на TextBox программным способом, то оно автоматически поставит курсор в начале. Итак, я думаю, что вы подписались на TextChanged событие TextBox, и вы поместили некоторый код, например myTextBox.Text = "some text";, в обработчик событий.

Когда пользователь изменяет событие Text, TextChanged, ваш обработчик событий снова меняет Text, в результате каретка устанавливается на начало.

Итак, это не из-за какой-либо ошибки вашего кода. Это поведение по умолчанию TextBox, в настоящее время, является ли это функция или ошибка, это спорно.

Я также столкнулся с этим, и мое решение заключалось в том, чтобы программно поместить курсор в конец, если необходимо какое-либо изменение программного текста, с таким кодом в конце обработчика события:

myTextBox.Select(myTextBox.Text.Length, 0);

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...