2012-10-29 45 views
0

我抓住了事件,但我需要保存點擊按鈕。保存keydown的輸出

例如一種方式來獲得修飾+ e.key

這是我的代碼:

protected override void OnKeyDown(KeyEventArgs e) 
     {  
      //base.OnKeyDown(e); 
      if (Keyboard.Modifiers == ModifierKeys.Control && e.Key == Key.E) 
      { 
       MessageBox.Show(test.ToString()); 
      }  
     } 

我想兩個鍵組合像

Key test = Key.Ctrl | e.Key ; 

但它總是給出錯誤結果,例如由於上述代碼導致的Ctrl + E導致J

我想保存我t,我想在所有的UserControls中使這些快捷鍵一般。

回答

1

嘗試像這樣使用KeyGesture

private void textBox1_KeyDown(object sender, KeyEventArgs e) 
{ 
    if(e.Key ==Key.E && e.KeyboardDevice.Modifiers==ModifierKeys.Control) 
    { 
     KeyGesture keyGesture = new KeyGesture(e.Key, e.KeyboardDevice.Modifiers); 
     if (keyGesture.Matches(null, e)) 
     { 
      //This should match! 
     } 
    } 
} 
+0

我知道這一點,但我想將SHIFT + E的結果保存在變量Key – AMH

+0

中我沒有仔細閱讀過你的問題。 –

+0

沒問題,如果你可以幫助我 – AMH

0

OK,因爲我用silverlight4,我會用

Tuple<ModifierKeys, Key> 

它工作的偉大,其性能是偉大的