private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
webBrowser1.Document.Body.MouseDown += Body_MouseDown;
}
void Body_MouseDown(object sender, HtmlElementEventArgs e)
{
switch (e.MouseButtonsPressed)
{
case MouseButtons.Left:
HtmlElement element = webBrowser1.Document.GetElementFromPoint(e.ClientMousePosition);
if (element != null && "img".Equals(element.GetAttribute("type"), StringComparison.OrdinalIgnoreCase))
{
MessageBox.Show("Image Was Clicked");
}
break;
}
}
这是我正在使用的代码,但它似乎没有用。我究竟做错了什么?这是正确的方法吗?
任何&所有帮助都得到了赞赏。
答案 0 :(得分:0)
并非html中的所有图片都具有type
属性。因此,您必须定义可点击的图像。例如,我编辑了您的代码:
webBrowser的初始化(你可以把它放在WinForm的构造函数中):
webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted);
webBrowser1.Navigate("http://www.google.com");
您的程序Body_MouseDown:
void Body_MouseDown(object sender, HtmlElementEventArgs e)
{
switch (e.MouseButtonsPressed)
{
case MouseButtons.Left:
HtmlElement element = webBrowser1.Document.GetElementFromPoint(e.ClientMousePosition);
if (element != null)
{
string s = element.Style;
if ((s != null) && (s.IndexOf(".png") != -1)) MessageBox.Show("Image Was Clicked");
}
break;
}
}
如果您点击Google徽标,您将收到所需的消息框。关键是我使用HtmlElement
的属性Style并在其中搜索子串“.png”。您可以搜索所需的所有格式:jpg,gif,bmp或所有格式。
祝你好运。