webBrowser 控件和双击

webBrowse control and Double Clicking

有人要求我创建一个非常简单的 windows 应用程序,其中表单上的唯一项目是 webBrowse 控件。我设置了一些尺寸元素并导航到所需的 URL。基本上这是一个自定义的 Kiosk 模式。

问题是该网页具有需要双击的功能,这些功能在 IE11 中可以正常工作,但在自助服务终端应用程序中却不行。我一直在尝试研究和玩这个整个上午都无济于事。到目前为止我得到的最好的是:

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");
}

消息框触发(未注释掉时)但我无法让它通过事件传递到基础页面?

当我意识到这是一个 Kendo 图表(不是我熟悉的技术)时,我将其添加到我的搜索中并找到了这个页面:

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);
}

这奏效了,让人松了一口气。