Если вы измените свойство Text
на TextBox
программным способом, то оно автоматически поставит курсор в начале. Итак, я думаю, что вы подписались на TextChanged
событие TextBox
, и вы поместили некоторый код, например myTextBox.Text = "some text";
, в обработчик событий.
Когда пользователь изменяет событие Text
, TextChanged
, ваш обработчик событий снова меняет Text
, в результате каретка устанавливается на начало.
Итак, это не из-за какой-либо ошибки вашего кода. Это поведение по умолчанию TextBox
, в настоящее время, является ли это функция или ошибка, это спорно.
Я также столкнулся с этим, и мое решение заключалось в том, чтобы программно поместить курсор в конец, если необходимо какое-либо изменение программного текста, с таким кодом в конце обработчика события:
myTextBox.Select(myTextBox.Text.Length, 0);
Надеюсь, это поможет.