如何捕获web浏览器控件中任何按钮的单击事件
本文关键字:按钮 单击 事件 任何 何捕获 web 浏览器 控件 | 更新日期: 2023-09-27 17:59:57
假设我的web浏览器显示了一个html页面,其中有许多按钮。我只是想知道我如何才能从我的c#win应用程序中捕捉到点击网页浏览器控件内的任何按钮。
如果可能的话,那么我想从该事件中捕获按钮名称、高度和宽度以及任何自定义属性。等等。请引导我。
如果您只想捕获鼠标点击,这将很有帮助:
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;
}
}
你能告诉我如何阅读任何html的自定义属性吗元素加载到web浏览器控件中。感谢
如果你不想链接到"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;
}