繁体   English   中英

如何在C#中的if语句[webbrowser / winforms]中使用HtmlElement

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM