我有Outlook插件(使用VSTO .net),它在outlook的自定义任务窗格中打开HTML5表单。
问题:Ctrl + A,单击任何outlook字段后,TAB事件无法使用文本区域等HTML本机控件。 例如,我用我的表单打开会议/电子邮件窗口,然后尝试在文本区域中写入任何内容,然后按Ctrl + A它工作正常。但现在如果我点击任何outlook本机字段然后返回到html表单文本区域我不能做Ctrl + A以及TAB键也无法正常工作。但是,我可以在该文本区域中编写任何文本。
此问题已在msdn论坛下面报告,但是已提供解决方法,但是可能会出现一些控件(如下拉列表)的潜在问题。
为方便添加解决方法以解决此问题:
void webBrowser1_DocumentCompleted(object sender,
System.Windows.Forms.WebBrowserDocumentCompletedEventArgs e)
{
HtmlDocument doc;
doc = webBrowser1.Document;
doc.Click += doc_Click;
}
void doc_Click(object sender, HtmlElementEventArgs e)
{
this.Focus(); // force user control to have the focus
HtmlElement elem =
webBrowser1.Document.GetElementFromPoint(e.ClientMousePosition);
elem.Focus(); // then let the clicked control to have focus
}
我虽然这个问题仅限于2010年的展望,但它仍然存在于2016年的展望中。
请注意我已经使用WinForm和WebBrowser控件验证了这种行为,它在那里工作正常。唯一的问题是Outlook。
之前是否还有其他人遇到此问题,是否有任何正确的解决方法?
请参阅上面提供的有youtube链接的链接,以便完全了解问题。
感谢您的帮助。
答案 0 :(得分:0)
在任何Office应用程序中托管Web浏览器确实是一个坏主意。由于WPF核心和Office GUI的部分不兼容性导致所有Office和.NET Framework版本中仍存在各种问题。
作为一种解决方法,您可以考虑使用Windows窗体控件重新创建GUI。