C # WebBrowser - как сделать обработчик событий Download / DownloadComplete - PullRequest
1 голос
/ 26 октября 2011

У меня есть объект веб-браузера. Он выполняет большую работу, поэтому очень часто я сталкиваюсь с проблемой, когда объекты еще не загружены, или новый запрос еще не завершен и т. Д.

Итак, сейчас я использую что-то вроде этого:

Thread.Sleep(n);
while (webBrowser1.ReadyState != WebBrowserReadyState.Complete)
{
Application.DoEvents();
}
// do stuff here

Но, как уже упоминалось, мне это не нравится. Это довольно ненадежно. Плюс нить замерзает.

Я уверен, что где-то в Интернете я видел что-то вроде DownloadCompleteHandler (не уверен насчет имени), которое запускало процесс загрузки страницы асинхронно, а после ее завершения - я мог бы вызвать другой обработчик, чтобы сообщить об этом. что делать дальше.

Но я не могу найти это снова. Было бы здорово, если кто-то может помочь.

Ответы [ 2 ]

4 голосов
/ 26 октября 2011

Я думаю, вы ищете событие DocumentCompleted .

Событие Navigated вызывается, когда на страницу перешли и началась загрузка, событие DocumentCompleted вызывается, когда страница закончила загрузку.

Редактировать

В ответ на ваш комментарий к вашему вопросу; Вы ищете событие ProgressChanged .

На самом деле было бы проще, если бы вы просто прочитали документацию WebBrowser на MSDN. На этой странице есть раздел «События», в котором перечислены все из них и для чего они используются.

0 голосов
/ 02 февраля 2012

Также вы можете взглянуть на WatiN

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