Tho*_*mas 3 c# webbrowser-control
假设我的Web浏览器正在显示一个html页面,其中有许多按钮.我只想知道如何从c#win应用程序中捕获Web浏览器控件中的任何按钮.
如果有可能那么从那个事件我想要捕获按钮名称,高度和宽度以及任何自定义属性.等.请指导我.
如果您只想捕获鼠标,这将非常有用:
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;
}
}
Run Code Online (Sandbox Code Playgroud)
你可以告诉我如何读取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;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21138 次 |
| 最近记录: |