Не уверен, как получить «окончательный» вывод из события WinForm KeyPress - PullRequest
0 голосов
/ 11 октября 2009

У меня есть простая форма win. В нем есть единый элемент управления TextBox. В этом я связал событие KeyPress. Зачем? Я пытаюсь захватить все, что пользователь вводит в этом текстовом поле. Но когда они нажимают клавишу возврата или ввода, я тогда беру все, что они напечатали, и отправляю это в анализатор команд, чтобы делать вещи.

Затем я отображаю на экране (в RichTextBox) все, что они напечатали, чтобы они знали, что команда собирается быть обработанной.

Простые вещи.

Но проблема в том, когда я нажимаю клавишу «Backspace». Gui отображает неправильный текст, странный символ, который представляет символ возврата, а затем правильный текст.

Так что, если я наберу это ... (== клавиша Backspace)

abcdxxx<BS><BS><BS>efg

графический интерфейс отображает это.

Я хочу, чтобы это отобразилось

abcdefg

(обратите внимание, что символы XXX и 3 символа возврата не отображаются).

Есть предложения?

Ответы [ 2 ]

0 голосов
/ 11 октября 2009

Попробуйте вместо этого использовать событие TextBox.TextChanged.

0 голосов
/ 11 октября 2009

При событии нажатия клавиши проверьте, является ли клавиша клавишей возврата, не сохраняйте ее, вместо этого удалите последний символ.

...