Получение имени html элемента при наведении мышки
Сегодня я хочу показать на простом примере, как получить имя html элемента при наведении мышкой в окне компонента WebBrowser.
И так для начала я создам простую html страничку.

Затем создам Windows Forms приложение, после чего добавлю на форму два элемента управления: WebBrowser (wb) и label.

Ну а теперь переходим к написанию кода.
Для начала нам нужно загрузить страницу в WebBrowser, например это можно сделать, с помощью метода Navigate, который в данном примере будет автоматически выполняться с помощью события Form.Load
private void Form1_Load(object sender, EventArgs e)
{
//загрузка страницы
wb.Navigate("адрес сайта");
} Затем необходимо дождаться полной загрузки страницы в браузере, для этого мы воспользуемся событием DocumentCompleted.
private void wb_DocumentCompleted(object sender,
WebBrowserDocumentCompletedEventArgs e)
{
} После этого подписываемся на событие MouseOver, с помощью которого мы будет отлавливать наведение мышки на html элемент.
private void wb_DocumentCompleted(object sender,
WebBrowserDocumentCompletedEventArgs e)
{
wb.Document.MouseOver +=
new HtmlElementEventHandler(Document_MouseOver);
} В обработчике данного события помещаем следующий фрагмент кода:
void Document_MouseOver(object sender, HtmlElementEventArgs e)
{
if (e.ToElement != null)
{
label1.Text = e.ToElement.TagName;
}
} С помощью свойства ToElement мы получаем html элемент, на который наведена мышка.
Запускаем приложение (F5 или Ctrl+F5) и после того как страница загрузилась, начинаем наводить мышку на любые элементы на странице.

В результате мы получаем имена тегов, которые принадлежат выбранным элементам.
Как получить имя html элемента?
Имя html элемента — это значение, которое содержится внутри атрибута name. Например, данный атрибут есть у элемента параграф, который сейчас расположен на нашей странице.

Если вам необходимо получить данное значение, то вместо TagName указываем свойство Name.
label1.Text = e.ToElement.Name;
результат

Как получить содержимое html элемента?
Содержимое html элемента получить так же просто, как и все предыдущие значения, для этого всего лишь нужно воспользоваться свойством InnerText.
label1.Text = e.ToElement.InnerText;
результат

видео
Читайте также: