我在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