webBrowse控件和双击

时间:2017-12-12 12:41:30

标签: javascript c# visual-studio-2015 webbrowser-control kendo-chart

我被要求创建一个非常简单的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");
}

消息框会触发(当没有注释掉时),但我无法通过事件将其传递给基础页面?

1 个答案:

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

这很有效,这是一种解脱。