Почему курсор ввода TextBox переходит на начало текста после ввода?

Этот код и обозначения не мои. Evan K решает многозначный одноименный запрос с пользовательской функцией;) берется из:

http://php.net/manual/en/function.parse-str.php#76792 Кредиты идут к Evan K.

Следует отметить, что parse_str builtin НЕ обрабатывает строку запроса стандартным способом CGI, когда дело касается дублирующих полей. Если в строке запроса есть несколько полей с одинаковым именем, каждый другой язык веб-обработки будет считывать их в массив, но PHP их молчаливо перезаписывает:

 '3');
?>

Instead, PHP uses a non-standards compliant practice of including brackets in fieldnames to achieve the same effect.

 array('1', '2', '3') );
?>

This can be confusing for anyone who's used to the CGI standard, so keep it in mind.  As an alternative, I use a "proper" querystring parser function:


0
задан spspli 16 January 2019 в 17:59
поделиться

1 ответ

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

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

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

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

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

Надежда, которая помогает .

0
ответ дан Muzib 16 January 2019 в 17:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: