2017-09-07 1 views
0

Ich versuche, eine Anwendung zu erstellen, wo ich Tabtip auf jedes INPUT-Feld in meinem Webbrowser-Steuerelement verwenden. Aber ich vor kurzem wechselte zu WPF und in dem alten WinForms-Code verwendet I HtmlElement element = Browser.Document.GetElementFromPoint(e.ClientMousePosition)So finden Sie INPUT-Element in WPF Webbrowser-Steuerelement

In meinem neuen Code, den ich ein Click-Ereignisse bin mit der Zeit determin auf der tabtip im Versuch zu öffnen, aber es braucht nur zu geschehen, wenn Das angeklickte Element ist ein INPUT-Feld. Mein Code:

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

Und das ist, wo ich, wenn das geklickt Element überprüfen will, ist ein Eingang:

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

I this Quelle verwendet, aber ich habe eine harte Zeit zu verstehen, ihre Worte, da ich bin versuchen, alles mit Xaml und C# zu behandeln.

Antwort

1

Versuchen Sie folgendes:

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

, die perfekt funktioniert, danke! –