如何在 c# 中的 if 语句 [webbrowser/winforms] 中使用 HtmlElement
本文关键字:winforms HtmlElement webbrowser 中的 语句 if | 更新日期: 2023-09-27 18:32:05
如何将这个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
}
并不是为每个
图像显示单击事件,而是因为 DocumentCompleted 事件触发了多次。(请参阅 Web 浏览器文档已完成事件触发多次)。如果您检查 e.Url 以确保您只运行实际页面 DocumentDone 的代码,您将看到该事件仅触发一次。
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);
}
}
}