Come catturare l’evento click per qualsiasi pulsante all’interno del controllo del browser web?

Supponiamo che il mio browser web mostri una pagina html in cui sono presenti molti pulsanti. Mi piacerebbe sapere come posso catturare i clic su qualsiasi pulsante all’interno del controllo del browser web dalle mie app win c #.

Se è ansible, allora da quell’evento voglio catturare il nome del pulsante, l’altezza e la larghezza e qualsiasi proprietà personalizzata. ecc. Per favore guidami.

Questo sarà utile se vuoi catturare solo i clic del mouse:

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

per favore, dimmi come posso leggere l’attributo personalizzato di qualsiasi elemento html caricato nel controllo del browser web. Grazie

Se non vuoi collegarti a “Microsoft.mshtml”, puoi provare a utilizzare questo metodo di esempio. Ma non puoi leggere tutti i membri attraverso la riflessione:

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