我有一個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