0

我是 C# 编程语言的初学者。我将一个简单的网络浏览器放入一个窗口表单中。我给浏览器分配了一个url地址,我想看看浏览器是否成功打开了我提供的链接。

我知道有一个事件处理程序叫做

    private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)

但是,在为浏览器分配 url 之后,我想写一些类似的东西

    if (webBrowser1_DocumentCompleted)
    {
     //my code here
    }

这可能吗?我知道您可以使用“WebBrowserReadyState”,但我更愿意尝试使用 Document ready。

4

3 回答 3

3

我不确定这是否是您正在寻找的,但这是我会尝试的:

首先在表单类的构造函数中创建一个事件处理程序:

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

在此之后,您需要创建一个在触发该事件时将调用的方法:

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

希望这可以帮助!

于 2011-10-26T11:08:48.907 回答
1

因为网页的加载和呈现是异步运行的,所以您必须在事件方法中执行逻辑(应该在加载文档后运行)。您可以通过以下方式订阅事件:

webBrowser.DocumentCompleted += webBrowser_DocumentCompleted;

你必须在你的类中有一个带有这个签名的方法,你可以在其中进行你想要的编码:

void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    // Do something after the document is loaded.
}
于 2011-10-26T11:07:13.553 回答
0

您可以检查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.
            }

        }
    }
于 2011-10-26T11:09:11.667 回答