【问题标题】:TextBox.KeyPress event is missing the most recent key pressed? Huh?TextBox.KeyPress 事件缺少最近按下的键?嗯?
【发布时间】:2012-03-21 10:41:06
【问题描述】:

我有一个WinForm,其中有一个TextBox。我已经连接了KeyPress 事件,因此我可以处理该文本框实例中的文本。

在处理该事件的方法中,TextBox.Text 的值是当前文本框内容减去刚刚按下的键。我需要它是准确的文本,包括我刚刚使用的键。

例如:-

  • TextBox.Text == hello
  • 然后我点击backspace 键。
  • KeyPress 事件被触发..TextBox.Text == "hello" 的值:(我希望它等于"hell"

请不要说只是添加e.KeyChar 值.. 因为现在是hello\b

是否有一个我可以使用的事件可以在按下键后触发 - 并且 - 文本框的值是正确/当前值?

【问题讨论】:

  • 您查看过 KeyDown 和 KeyUp 事件吗?
  • 使用 KeyUp 或 TextChanged 事件...

标签: c# .net winforms events textbox


【解决方案1】:

您需要KeyUp 事件。

关键事件按以下顺序发生:
1. KeyDown
2. 按键
3. KeyUp

来源:http://msdn.microsoft.com/en-us/library/system.windows.forms.control.keyup.aspx

如果您只使用文本而不是键,请考虑TextChanged

【讨论】:

    【解决方案2】:

    就像 Chris Gessler 所说,查看KeyUp event of the TextBox。它在这里显示“地狱”:

    【讨论】:

    • 也喜欢图片的使用。 +1 不错!
    猜你喜欢
    • 1970-01-01
    • 2012-11-05
    • 2020-11-05
    • 2018-06-22
    • 1970-01-01
    • 2021-03-16
    • 2015-08-17
    • 2016-03-28
    • 2019-07-12
    相关资源
    最近更新 更多