如何捕获Web浏览器控件中任何按钮的单击事件?

假设我的网页浏览器显示的是一个html页面,其中有许多按钮。 我只想知道如何从c#win apps中捕获网页浏览器控件中的任何按钮。

如果可能那么从那个事件我想要捕获按钮名称,高度和宽度以及任何自定义属性。 等。请指导我。

如果您只想捕获鼠标,这将非常有用:

WebBrowser _browser; this._browser.DocumentCompleted+=new WebBrowserDocumentCompletedEventHandler(browser_DocumentCompleted); ... private void browser_DocumentCompleted(Object sender, WebBrowserDocumentCompletedEventArgs e) { this._browser.Document.Body.MouseDown += new HtmlElementEventHandler(Body_MouseDown); } ... void Body_MouseDown(Object sender, HtmlElementEventArgs e) { switch(e.MouseButtonsPressed) { case MouseButtons.Left: HtmlElement element = this._browser.Document.GetElementFromPoint(e.ClientMousePosition); if(element != null && "submit".Equals(element.GetAttribute("type"),StringComparison.OrdinalIgnoreCase) { } break; } } 

你能告诉我怎样才能读取web浏览器控件中加载的任何html元素的自定义属性。 谢谢

如果您不想链接到“Microsoft.mshtml”,您可以尝试使用此示例方法。 但你不能通过反思阅读所有成员:

 public static String GetElementPropertyValue(HtmlElement element, String property) { if(element == null) throw new ArgumentNullException("element"); if(String.IsNullOrEmpty(property)) throw new ArgumentNullException("property"); String result = element.GetAttribute(property); if(String.IsNullOrEmpty(result)) {//В MSIE 9 получить свойство через DomElement не получается. Т.к. там он ComObject. var objProperty = element.DomElement.GetType().GetProperty(property); if(objProperty != null) { Object value = objProperty.GetValue(element.DomElement, null); result = value == null ? String.Empty : value.ToString(); } } return result; }