我们应该如何处理WPF中的键盘事件?应该是KeyUp还是KeyDown?

时间:2012-02-02 17:10:36

标签: wpf windows forms keydown keyup

我一直在使用WPF进行所有隧道和冒泡事件,我必须说它们非常强大。
但我总是质疑自己是使用[ PreviewKeyUp和KeyUp ]还是[ PreviewKeyDown和Keydown ]?

我应该使用哪种组合来对按键做出反应?为什么?

2 个答案:

答案 0 :(得分:4)

取决于你想做什么:

  1. PreviewKeyDown =在按下键之前 示例:如果在文本框中有事件,则按下的当前键不会添加到TextBox.Text
  2. PreviewKeyUp =在释放钥匙之前
  3. KeyDown =按下键后 示例:如果在文本框中有事件,则按下的当前键将添加到TextBox.Text
  4. KeyUp =钥匙松开后
  5. 所以这又取决于你想做什么。如果要添加TextBox验证,请使用PreviewKeyDown忽略文本(如果不正确)。

    如果你想在用户放开SPACE时做某事,那么我们就是KeyUp

答案 1 :(得分:0)

这一切都取决于具体情况,例如,选择列表中的项目将希望是KeyDown,以便可以保留密钥并更改所选项目。

如果您的元素具有多个视觉状态,例如一个按钮,KeyDown可能会改变视觉状态,然后KeyUp会将视觉返回到原始状态并执行命令。

在你的情况下,这一切都取决于你想要什么时候提出这个事件,我不会说任何一个比另一个好,因为它们用于不同的用途。