C# WinForms 浏览器控件中的图像单击
本文关键字:图像 单击 控件 WinForms 浏览器 | 更新日期: 2023-09-27 18:31:53
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;
}
}
这是我正在使用的代码,但它似乎不起作用。我做错了什么?这是正确的方法吗?
感谢任何和所有的帮助。
并非 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或全部。祝你好运。