如何在wpf Webbrowser控件中找到INPUT元素

时间:2017-09-07 13:09:59

标签: c# wpf input webbrowser-control

我正在尝试构建一个应用程序,我在webbrowser控件中的每个INPUT字段上使用tabtip。但我最近切换到WPF和我使用的旧WinForms代码 HtmlElement element = Browser.Document.GetElementFromPoint(e.ClientMousePosition)

在我的新代码中,我使用click事件来确定我尝试打开tabtip的时间,但只有当clicked元素是INPUT字段时才需要。我的代码:

public static void webBrowser1_LoadCompleted(object sender, NavigationEventArgs e, WebBrowser browser)
{
    mshtml.HTMLDocument doc;
    doc = (mshtml.HTMLDocument)browser.Document;
    mshtml.HTMLDocumentEvents2_Event iEvent;
    iEvent = (mshtml.HTMLDocumentEvents2_Event)doc;
    iEvent.onclick += new mshtml.HTMLDocumentEvents2_onclickEventHandler(ClickEventHandler);
}

这就是我要检查点击的元素是否为输入的地方:

private static bool ClickEventHandler(mshtml.IHTMLEventObj e)
{
    MessageBox.Show("Item Clicked"); //if(HtmlElement == INPUT) like scenario here
    return true;
}

我使用this来源但我很难理解他们的话,因为我正试图用xaml和c#处理所有内容。

1 个答案:

答案 0 :(得分:1)

试试这个:

private static bool ClickEventHandler(mshtml.IHTMLEventObj e)
{
    mshtml.IHTMLInputElement inputElement = e.srcElement as mshtml.IHTMLInputElement;
    if (inputElement != null)
    {
        MessageBox.Show("<input> clicked");
    }
    return true;
}