[英]How to use HtmlElement in if statement [webbrowser/winforms] in c#
如何将这个foreach循环更改为if语句。 它为每张图像显示消息[即使我仅单击一个图像也是如此]。 我只想在点击图片时显示一条消息...
[码]
private void webBrowser1_DocumentCompleted(object sender, CompletedEventArgs e)
{
foreach (HtmlElement ele in
webBrowser1.Document.GetElementsByTagName("img"))
{
ele.AttachEventHandler("onclick", Document_Click);
}
}
private void Document_Click(object sender, EventArgs e)
{
MessageBox.Show("You clicked an image.");
}
[我尝试过的]
if (webBrowser1.Document.GetType().GetElementType().Equals("img"))
{
// I tried this
}
HtmlElement elemz;
if (elemz.GetAttribute("type").Equals("img"))
{
// And this
}
HtmlElement elemz;
if (elemz == webBrowser1.Document.GetElementsByTagName("img"))
{
// Also this
}
if (webBrowser1.Document.GetType("img") == true)
{
// Finally I tried this
}
HtmlElement elemz;
if (elemz.GetAttribute("type") == webBrowser1.Document.GetElementsByTagName("img"))
{
// My last hope was this
}
不是每个图像都显示click事件,这是因为DocumentCompleted事件正在触发多次。 (请参阅多次触发WebBrowser DocumentCompleted事件 )。 如果您检查e.Url以确保仅针对实际页面DocumentCompleted运行代码,您将看到该事件仅触发一次。
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) {
if (e.Url.Equals(webBrowser1.Url)) {
foreach (HtmlElement ele in webBrowser1.Document.GetElementsByTagName("img")) {
ele.AttachEventHandler("onclick", Document_Click);
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.