65.9K
CodeProject 正在变化。 阅读更多。
Home

WebBrowserControl 快捷键失效 (WinForms)

starIconstarIconstarIconstarIconstarIcon

5.00/5 (1投票)

2015年10月30日

CPOL
viewsIcon

9305

从 Internet Explorer 8 升级到 Internet Explorer 11 后,WebBrowserControl 快捷键停止工作。经过大量研究,我找到了问题的根本原因,以及解决此问题的方法。

引言

有一天,我遇到一个奇怪的问题,即在从 Internet Explorer 8 升级到 Internet Explorer 11 后,WebBrowserControl 快捷键无法正常工作。

我开始搜索快捷键(例如:CTRL+C、CTRL+V)无法工作的原因。有一些建议说要覆盖 keypress 事件,并编写自己的逻辑来处理快捷键。覆盖 keypress 事件可能不是一个坏主意。但是,如果我们要支持 100 个快捷键,我们需要编写代码来处理所有这些快捷键。

经过大量研究,我终于发现这是一个兼容性问题。向 webbrowser 控件添加 meta 标签可以解决此问题。

我分享这个经验,以便如果有人遇到相同的问题,这个技巧可以帮助他们。

Using the Code

在导航 URL 之前,将 meta 信息写入 webbrowserdocumenttext 属性,如下所示

//Setting compatible mode of IE.
this.m_oWebBrowser.DocumentText = 
                  @"<html>
                  <head><meta http-equiv=""X-UA-Compatible"" 
                  content=""IE=IE11"" /> </head>
                  <body></body>
                  </html>";
this.m_oWebBrowser.Navigate(szURL);
© . All rights reserved.