2015-08-20 47 views
0

我有一個WinForm應用程序,我很想用轉義按鈕關閉控件。我在KeyPress上創建了一個事件,當我使用除Escape之外的其他任何鍵時,此功能都可以使用。KeyEventArgs沒有響應按退出按鈕

private void ProductsView_KeyPress(object sender, KeyPressEventArgs e) 
{ 
    if (e.KeyChar == (char) Keys.B || e.KeyChar == (char)Keys.Escape) 
    { 
     //Magic happens 
    } 
} 

如果我按「B」一切正常,但如果我按「退出」,該事件不會觸發(是的,我的退出按鈕的作品)。 我不知道什麼可能會導致此問題,我也嘗試KeyUp & KeyDown事件。

+0

使用'KeyDown'或'KeyUp'代替。 –

回答

0

您可以創建嵌套的控制和超越的方法ProcessCmdKey:

protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg, System.Windows.Forms.Keys keyData) 
    { 
     switch (keyData) 
     { 
      case System.Windows.Forms.Keys.Escape: 
      { 
       //...magic 
      } 
     } 
    } 
+0

感謝您的快速響應! 這解決了我的問題,你是一個拯救生命的人! ;) – methgaard

+0

@methgaard我很高興看到這個:)你能接受我的答案嗎? – Backs