我有一个PreviewKeyDown处理程序在我的mainwindow上处理向上和向下键,所以我可以用我的控件之间的键盘导航。全局PreviewKeyDown处理程序vs本地PreviewKeyDown处理程序
现在我有问题了,在一些文本框中我也想使用上/下键。这似乎是不可能的,因为其他处理程序似乎首先吞下了键。
是否有可能当这些TextBox控件中的一个被关注时,他们首先获取上/下键,然后吞下它们以便“全局”PreviewKeyDown不会获取它们?
当然,我可以以某种方式禁用全局处理程序,当这样一个TextBox得到了重点,但是这种良好的风格?
但我可以派生自己的TextBox,然后注册该类的处理程序?或者也许创建一个用户控件? – codymanix 2009-09-22 10:51:17
我认为这样会有效,但我不确定。这绝对值得一试。 – Andy 2009-09-22 18:25:25
抱歉,它不起作用。我使用了EventManager.RegisterClassHandler(typeof(TextBox),TextBox.PreviewKeyDownEvent,new KeyEventHandler(WatchOutHandler))和其他变体,但全局处理程序似乎总是被首先调用。 – codymanix 2009-09-22 19:01:45