2014-06-30 29 views
3

我正在C#中使用Visual Studio 2012在Winform應用程序中製作鍵盤快捷鍵。我的快捷鍵工作得很完美。但它發出惱人的嘟嘟聲。避免在C#winform的鍵盤快捷鍵上發出警報

我加了e.Handled = true;e.SuppressKeyPress = true;根據很多線程。但它不起作用,我的winform卡住了。

我該如何避免這種情況?

private void textBoxSearch_KeyDown(object sender, KeyEventArgs e) 
    { 
     if (e.KeyCode == Keys.Down) 
     { 
      do stuff 
     } 
     else if (e.KeyCode == Keys.Enter) 
     { 
      //do stuff 
     } 
     e.Handled = true; 
     e.SuppressKeyPress = true; 
    } 

我也需要一個解決方案。

protected override bool ProcessCmdKey(ref Message msg, Keys keyData) 
    { 
     if (keyData == (Keys.Control | Keys.F)) 
     { 
      //do stuff 
     } 
     else if (keyData == (Keys.Control | Keys.G)) { 
      //do stuff 
     } 

     return base.ProcessCmdKey(ref msg, keyData); 
    } 
+0

能否請您澄清一下「一個惱人的嗶」的意思?快捷方式是否正確時它會這樣做嗎?當你按下它?當它執行動作? –

+0

「惱人的嘟嘟聲」意味着像「丁」這樣的窗口提示音。它正確執行。 「丁」的聲音是問題。 – user3693167

回答

0

你在KeyDown事件中應該有什麼工作。當我複製你的代碼時,SupressKeyPress = true停止了我的工作。

在給ProcessCmdKey事件中,你需要這樣的:

protected override bool ProcessCmdKey(ref Message msg, Keys keyData) 
{ 
    if (keyData == (Keys.Control | Keys.F)) 
    { 
     //do stuff 
     return; 
    } 
    else if (keyData == (Keys.Control | Keys.G)) { 
     //do stuff 
     return; 
    } 

    return base.ProcessCmdKey(ref msg, keyData); 
}