不知道如何获得“最终” WinForm KeyPress 事件的输出
我有一个简单的winform。其中有一个 TextBox 控件。在其中,我已经连接了 KeyPress 事件。为什么?我试图捕获用户在该文本框中输入的所有内容。但是,当他们按回车键或回车键时,我会抓取他们输入的所有内容并将其发送到命令解析器来执行操作。
然后,我在屏幕上(在 RichTextBox 中)显示他们输入的任何内容,以便他们知道该命令即将得到处理。
简单的东西。
但问题是当我按下“退格”键时。 Gui 显示不正确的文本,一个代表退格字符的奇怪字符,然后显示正确的文本。
所以如果我输入这个... (==退格键)
abcdxxx<BS><BS><BS>efg
GUI 显示该内容。
我希望它显示
abcdefg
(注意 XXX 字符和 3 个退格字符并没有显示)。
有什么建议吗?
I've got a simple winform. In it has a single TextBox control. In that, i've wired up the KeyPress event. Why? I'm trying to capture everything the user types in that textbox. But, when they hit return or enter, i then grab everything they've typed and send it to a command parser to do stuff.
I then display on the screen (in a RichTextBox) whatever they typed, so they know the command is about to get processed.
Simple stuff.
But the problem is when I hit the 'backspace' key. The Gui displays the incorrect text, a weird character that represents the backspace character and then the correct text.
So if i type this...
( == the backspace key)
abcdxxx<BS><BS><BS>efg
the gui displays that.
I want it to display
abcdefg
(notice the XXX chars and the 3 backspace chars and not displayed).
Any suggestions?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在按键事件中检查该键是否为退格键,不存储它,而是删除最后一个字符。
On key press event check if the key is backspace don't store it, instead delete the last character.
尝试改用
TextBox.TextChanged
事件。Try using the
TextBox.TextChanged
event instead.