如何在Office自定义任务窗格中的WebBrowser控件中启用键盘事件
本文关键字:WebBrowser 控件 启用 事件 键盘 Office 自定义 任务 | 更新日期: 2023-09-27 17:59:21
我在Visual Studio中创建的Microsoft Office应用程序级外接程序的自定义任务窗格中显示了一个WebBrowser
控件。WebBrowser
中显示的网页不接收可以由JavaScript代码(如KeyUp
)处理的键盘事件。Form
中可比较的WebBrowser
中显示的同一页面确实接收键盘事件。WebBrowser
控件本身似乎没有公开任何与键盘输入相关的事件,而且我似乎无法通过向作为自定义任务窗格添加的UserControl
添加事件处理程序来处理键盘事件。
我创建了一个最小的例子——Visual Studio解决方案——它重现了这个问题。
有什么方法可以将键盘事件传递到网页上吗?
是的,你可以做到。你必须挂接HTML DOM事件(如onclick、onmouseover等)。看看这里:http://www.w3schools.com/jsref/dom_obj_event.asp.
这里有一个例子:http://www.codeproject.com/Articles/547451/WebBrowser-Element-Events-and-Values
我认为您必须添加对MSHTML库的引用。顺便说一句,把WebBrowser控件放在Panel控件中,否则它会表现得很愚蠢——尤其是在键盘事件中。
实际上,我发现了一个解决方案,即在Excel命名空间下使用WebBrowser
https://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.controls.webbrowser.aspx
显然,它是在将窗口从WebBrowser子类化,并通过手动处理一些窗口消息来解决键盘问题。