Как работать с классом WebBrowser?

Пример работы с классом WebBrowser

В комментариях многие просят показать или рассказать, как работать с классом webBrowser, а не с одноимённым элементом управления (webBrowser control). На самом деле большой разницы в работе между ними нет, но всё равно решил исправить данный момент и добавить новую статью.

Class WebBrowser

И так, для начала работы с классом webbrowser, нам понадобиться создать объект данного класса. Делается это следующим образом:

WebBrowser wb = new WebBrowser();

Далее предположим, что нам нужно получить содержимое страницы, сделать это можно, например, с помощью метода Navigate.

wb.Navigate(@"адрес сайта");

Затем переходим к работе с событиями класса webbrowser

Чтобы дождаться полной загрузки страницы необходимо подписаться на событие DocumentCompleted. Если в случаи с webBrowser control для этого мы использовали графический интерфейс Visual Studio и с помощью вкладки Properties подписывались на данное событие, то в данном случае сделать это нужно вручную:

wb.DocumentCompleted += 
new WebBrowserDocumentCompletedEventHandler(wb_DocumentCompleted);

(перенос на новую строку делать необязательно, всё можно разместить в одну строчку)

После знака равно дважды нажмите клавишу Tab, чтобы автоматически подставилась вся остальная часть, иначе Вам придется писать её вручную.

И так, мы подписались на событие, в круглых скобках указан метод, который будет выполняться при его возникновении. Данный метод так же был создан автоматически, обычно чуть ниже, если Вы дважды нажали клавишу Tab, иначе Вам придется его создать самостоятельно.

void wb_DocumentCompleted(object sender,
WebBrowserDocumentCompletedEventArgs e)
{
throw new NotImplementedException();
}

Созданный метод в данный момент содержит всего одну строчку кода, которая всего лишь играет роль заглушки. То есть, например, если нам нужно найти все ссылки на странице, то тогда мы просто удаляем данную строку и добавляем свою код, например:

void wb_DocumentCompleted(object sender,
WebBrowserDocumentCompletedEventArgs e)
{
HtmlElementCollection links = wb.Document.Links;
}

Исходный код

namespace myWebClass
{
public partial class Form1 : Form
{
WebBrowser wb = new WebBrowser();
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
wb.Navigate(@"/");
wb.DocumentCompleted +=
new WebBrowserDocumentCompletedEventHandler(wb_DocumentCompleted);
}
void wb_DocumentCompleted(object sender,
WebBrowserDocumentCompletedEventArgs e)
{
HtmlElementCollection links = wb.Document.Links;
}
}
}

Вот собственно и всё, как видно ничего сложного.

Читайте также:

Leave a Reply

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*