2014-07-11 83 views
0

我有一個應用程序,我已經爲一組給定的操作實現了一些鍵盤快捷鍵,其中一些使用ALT作爲修飾符,例如, ALT + 。功能本身工作正常,但系統在按鍵過程中發出蜂鳴聲。WinForms ALT鍵蜂鳴聲

我已閱讀各種帖子,說我可以在KeyPress事件中使用e.Handled,但這對我的場景沒有幫助。通過創建新的Windows Forms應用程序並無需任何修改地運行該問題,可輕鬆複製該問題,例如按ALT + 例如將導致系統發出嘟嘟聲。

我注意到,其他應用程序,如記事本有這種行爲太,如果您啓動記事本,然後按ALT +Ĵ(或任何其他無效的菜單按鍵)系統會發出提示音。

有什麼辦法來防止通過我的應用程序發出嘟嘟聲,或者它是標準的Windows行爲嗎?

+0

我認爲它的意思是提醒用戶做到這一點她正在選擇一個未定義的菜單快捷方式。您可以嘗試使用定義的這些快捷方式添加_hidden_​​菜單條目。 –

+0

這是標準的Windows行爲。如果您在控制面板 - >聲音中查找名爲「菜單命令」的聲音效果,那就是播放內容。我正在使用的當前聲音方案(Windows 7提供的聲音方案之一)只會產生空白效果。如果你想刪除它只是爲了你的電腦,那麼我建議在控制面板中修改。 – Grim

回答

0

你可以嘗試在你的KeyPress事件管理中使用SuppressKeyPress嗎?

e.SuppressKeyPress = true; 
+0

我已經嘗試將窗體KeyPreview設置爲True,並向KeyDown,KeyPress和KeyUp事件添加了斷點,並且在進入任何這些事件之前發出嘟嘟聲。 – Newm

+0

好吧我會盡量讓相同的代碼,看看我是否找到了解決方案 –

2

,你可以處理keydown事件和ALT + 1做這樣的事情,但我懷疑你可能要爲所有的無效密鑰

private void keyDown(object sender, KeyEventArgs e) 
{ 
    if (e.KeyCode >= Keys.D1 && e.Alt) 
    { 
     e.Handled = true; 
     e.SuppressKeyPress = true; 
    } 
}