我在Form
中有一個WebBwoser
,我想捕獲Ctrl + O組合鍵作爲菜單項的快捷方式。我的問題是,如果我點擊WebBrowser
,然後按下Ctrl + O,則會彈出一個Internet Explorer對話框,而不是執行我的菜單項。我有我的Form
的KeyPreview
屬性設置爲true
。另外,我爲KeyDown
事件添加了一個事件處理程序,但在單擊WebBrowser
後,它不會再被調用。我怎樣才能解決這個問題?WebBrowser「竊取」我的表單中的KeyDown事件
5
A
回答
7
這應該可以解決您的問題。它禁用了Web瀏覽器的加速鍵。
webBrowser1.WebBrowserShortcutsEnabled = false;
您可能想要了解是否需要IsWebBrowserContextMenuEnabled
以及。
如果您需要某些加速鍵在瀏覽器中處於活動狀態,以下內容也可以解決您的問題。但是,這種方法需要一些東西來捕捉焦點。 MessageBox.Show()
和dialog.ShowDialog()
可以做的工作
private void DoSomething()
{
webBrowser1.PreviewKeyDown += new PreviewKeyDownEventHandler(webBrowser1_PreviewKeyDown);
}
private void webBrowser1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
if (e.Control && e.KeyCode == Keys.O)
{
menuItem.PerformClick();
// MessageBox.Show("Done");
}
}
2
您可以覆蓋給ProcessCmdKey方法:
protected override bool ProcessCmdKey(ref Meassage msg, Keys keyDaya)
{
//Trap for Key down
return true; //false if you want to suppress the key press.
}
相關問題
- 1. Webbrowser竊取重點
- 2. Iframe竊取鼠標事件
- 3. VB6中的WindowsMediaPlayer KeyDown事件
- 4. 覆蓋webBrowser單擊事件
- 5. 在單個keydown上觸發不需要的多個KeyDown事件
- 6. 在keydown事件
- 7. keydown事件:與「@」
- 8. 竊取我的POST數據
- 9. 工具提示竊取鼠標事件
- 10. MS Surface Tag Visualizer竊取聯繫事件
- 11. 如何阻止干擾表單域的keydown事件?
- 12. 對KeyDown事件沒有響應的表單
- 13. C#試圖捕獲表單上的KeyDown事件
- 14. keydown事件上的鍵碼
- 15. 的.Net事件KeyDown C#
- 16. KeyDown事件上的PrintScreen鍵
- 17. WPF的KeyDown和KeyUp事件
- 18. 暫停JavaScript的keydown事件
- 19. 如何防止WebBrowser控件從我的WPF窗體中的其他文本框中竊取焦點
- 20. SVG背景元素竊取焦點在Internet Explorer 11中的單擊事件
- 21. keydown事件代碼
- 22. C#radiobutton keydown事件
- 23. KeyDown事件和drag'n'drop
- 24. Keydown事件 - 降溫
- 25. KeyDown和KeyUp事件
- 26. 模擬keydown事件
- 27. 調用KeyDown事件
- 28. Keydown標籤事件
- 29. DataGridView - ReadOnly單元格KeyDown事件
- 30. NSView無法抓取Ctrl + Tab Keydown事件
嗯,是唯一可能的解決方案嗎?我希望用戶能夠通過按Ctrl + F來執行其他操作。 – Juan 2011-03-02 08:39:10
+1你通過網絡速度打我,當我試圖找到MSDN上的鏈接時,我的瀏覽器掛起: – 2011-03-02 08:39:58
如上面我編輯的答案中所示,您可以捕獲webBrowser上的'PreviewKeyDown'。 – 2011-03-02 09:15:01