DocumentCompleted - PullRequest
       19

DocumentCompleted

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

Я начинающий с языка программирования c #.Я поместил простой веб-браузер в форму окна.Я назначаю URL-адрес браузеру и хочу убедиться, что браузер успешно открыл предоставленную мной ссылку.

Я знаю, что есть обработчик событий, называемый

    private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)

, однако после назначения URL для браузера я хочу написать что-то вроде

    if (webBrowser1_DocumentCompleted)
    {
     //my code here
    }

,возможный?Я знаю, что вы можете использовать "WebBrowserReadyState", но я бы предпочел попробовать и использовать готовый документ.

Ответы [ 3 ]

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

Я не уверен, что это то, что вы ищете, но это то, что я бы попробовал:

сначала создайте обработчик событий в конструкторе класса вашей формы:

public void Form1()
{
     webBrowser1.DocumentCompleted  +=
    new WebBrowserDocumentCompletedEventHandler(WebDocumentCompleted);
}

После этого вам нужно создать метод, который будет вызываться при запуске этого события:

void WebDocumentcompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    //Your code here
}

Надеюсь, это поможет!

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

Поскольку загрузка и рендеринг веб-страницы выполняется асинхронно, вы должны выполнить логику (которая должна выполняться после загрузки документа) в методе события.Вы можете подписаться на событие следующим образом:

webBrowser.DocumentCompleted += webBrowser_DocumentCompleted;

В вашем классе должен быть метод с такой подписью, в котором вы можете создать нужную кодировку:

void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    // Do something after the document is loaded.
}
0 голосов
/ 26 октября 2011

Вы можете проверить результат из DownloadDataCompletedEventArgs (e)

class Program
    {
        static void Main(string[] args)
        {

            WebClient wb = new WebClient();
            wb.DownloadDataAsync("www.hotmail.com");
            wb.DownloadDataCompleted += new DownloadDataCompletedEventHandler(wb_DownloadDataCompleted);
        }

        static void wb_DownloadDataCompleted(object sender, DownloadDataCompletedEventArgs e)
        {
            if (e.Cancelled)//cancelled download by someone/may be you 
            {
                //add necessary logic here
            }
            else if (e.Error)// all exception can be collected here including invalid download uri
            {
                //add necessary logic here
            }
            else if (e.UserState)// get user state for asyn
            {
                //add necessary logic here
            }
            else
            {
                //you can assume here that you have result from the download.
            }

        }
    }
...