我在Visual Studio中创建的Microsoft Office应用程序级外接程序的自定义任务窗格中显示了WebBrowser
控件。 WebBrowser
中显示的网页未收到可由JavaScript代码处理的键盘事件,例如KeyUp
。 WebBrowser
中可比较的Form
中显示的同一页面会收到键盘事件。 WebBrowser
控件本身似乎没有暴露任何与键盘输入相关的事件,我似乎无法通过向作为自定义任务添加的UserControl
添加事件处理程序来处理键盘事件窗格中。
我创建了a minimal example – a Visual Studio solution – which recreates the problem。
有没有办法将键盘事件传递到网页?
答案 0 :(得分:0)
这里有一个例子: http://www.codeproject.com/Articles/547451/WebBrowser-Element-Events-and-Values
我认为您必须添加对MSHTML库的引用。顺便说一下,把WebBrowser控件放在一个Panel控件中,否则它会表现得很傻 - 尤其是键盘事件。
答案 1 :(得分:0)
实际上我发现一个解决方案是在Excel命名空间下使用WebBrowser
https://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.controls.webbrowser.aspx
显然,它正在通过手动处理一些Windows消息来对Windows WebBrowser进行子类化并修复键盘问题。