为什么HtmlElementEventArgs.ToElement返回null?

时间:2018-05-07 03:43:30

标签: c# system.web

我试图在网页浏览器中点击某个元素。

这是我的代码:

try
{
   htmlElement.MouseDown -= new 
   HtmlElementEventHandler(webBrowser1_MouseDown);
}
catch (Exception)
{
}
htmlElement.MouseDown += new HtmlElementEventHandler(webBrowser1_MouseDown);

此代码在webBrowser1.GotFocus& webBrowser1.LostFocus。

这是MouseDown的代码。

    public void webBrowser1_MouseDown(object sender, HtmlElementEventArgs e)
    {
        HtmlElement element = e.ToElement;
        Console.WriteLine(element);
    }

每当我点击该项目时出于某种原因。 element等于null?

但如果我这样做

try
{
    Console.WriteLine(htmlElement.Name); // works
    htmlElement.MouseDown -= new 
    HtmlElementEventHandler(webBrowser1_MouseDown);
}
catch (Exception)
{
}
htmlElement.MouseDown += new HtmlElementEventHandler(webBrowser1_MouseDown);

1 个答案:

答案 0 :(得分:1)

我在您分享的代码中注意到的两件事情,您可以非常轻松地修复它们。

  1. htmlElement - 您在Page上声明了这一点并注册了MouseDown事件。您可以在页面的任何位置访问它。事件中不需要另一个HtmlElement对象。

  2. 您在e收到的内容是HtmlElementEventArgs,而不是任何元素。我建议你使用sender对象来获取元素。