Почему HtmlElementEventArgs.ToElement возвращает ноль? - PullRequest
0 голосов
/ 07 мая 2018

Я пытаюсь определить определенный элемент при его нажатии в веб-браузере.

Вот мой код:

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);
    }

По какой-то причине, когда я нажимаю на предмет. элемент равен нулю?

но если я сделаю

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

1 Ответ

0 голосов
/ 07 мая 2018

В коде, которым вы поделились, я заметил две вещи, вы можете легко их исправить.

  1. htmlElement - вы заявили об этом на странице и зарегистрировали событие MouseDown. Вы можете получить к нему доступ в любом месте на странице. В событии нет необходимости в другом объекте HtmlElement.

  2. То, что вы получаете в e, это HtmlElementEventArgs, а не какой-либо элемент. Я бы предложил вам использовать sender объект, чтобы получить элемент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...