任何按键的文本框keydown?

时间:2011-07-28 14:57:31

标签: c# .net wpf

在WPF中,我希望文本框能够在该文本框聚焦时为任何按键操作引发事件。我不确定哪些键没有触发KeyDown事件,但作为一个例子,我知道如果我按下左箭头或右箭头,那么它不会触发事件,光标分别向左或向右移动。我的目标是为所有按下的键获取System.Windows.Forms.Keys枚举值。我已经找到关于KeyKeys之间转换的this question,现在我只需要拦截任何一个键。是否有我可以回复的不同事件,例如PreviewKeyDown(我会说实话,我不知道正常事件和“预览”事件之间的区别)或者文本框中是否存在属性比如AcceptsTab

1 个答案:

答案 0 :(得分:5)

PreviewKeyDown-Event就是您所需要的。它在TextBox处理关键消息之前被触发,因此您获得所有键的事件 如果您在PreviewKeyDownEvent中使用了一个键,则可以将Event.Handled-property设置为true,并且不会再从键中注意TextBox。
您将找到许多事件的“预览” - 前缀。这是一种经常使用的模式。查看here以获取更多信息。有趣的部分是“路由策略”部分。