我正在尝试构建一个应用程序,我在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#处理所有内容。
答案 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;
}