我被要求创建一个非常简单的Windows应用程序,其中表单上唯一的项目是webBrowse控件。我设置了一些大小元素并导航到所需的URL。基本上它是一种自定义的Kiosk模式。
问题是网页具有需要双击的功能,这些功能在IE11中正常工作,但在kiosk应用程序中却没有。我整个上午都在努力研究和玩这个,但没有用。到目前为止我得到的最好的是:
private void mainBrowse_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
mainBrowse.Document.Body.AttachEventHandler("ondblclick", Document_DoubleClick);
}
void Document_DoubleClick(object sender, EventArgs e)
{
this.mainBrowse.Document.GetElementFromPoint(MousePosition).InvokeMember("doubleclick");
//MessageBox.Show("double click detected");
}
消息框会触发(当没有注释掉时),但我无法通过事件将其传递给基础页面?
答案 0 :(得分:1)
当我意识到这是一张剑道图表(不是我熟悉的技术)时,我将其添加到我的搜索中并找到了此页面:
https://www.telerik.com/forums/gantt-does-not-render-correctly-in-winforms-webbrowser-control
在我的背后,我为_Navigated创建了一个事件,并注入了它推荐的必要脚本:
private void mainBrowse_Navigated(object sender, WebBrowserNavigatedEventArgs e)
{
HtmlDocument doc = mainBrowse.Document;
HtmlElement head = doc.GetElementsByTagName("head")[0];
HtmlElement s = doc.CreateElement("script");
s.SetAttribute("text", "window.MSPointerEvent = null;window.PointerEvent = null; ");
head.AppendChild(s);
}
这很有效,这是一种解脱。