繁体   English   中英

DocumentCompleted

[英]DocumentCompleted

我是使用c#编程语言的入门者。 我将一个简单的Web浏览器放入了窗口形式。 我为浏览器分配了一个网址,我想查看浏览器是否成功打开了我提供的链接。

我知道有一个名为

    private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)

但是,在为浏览器分配了网址之后,我想写一些类似的内容

    if (webBrowser1_DocumentCompleted)
    {
     //my code here
    }

这可能吗? 我知道您可以使用“ WebBrowserReadyState”,但我希望尝试并准备使用Document。

我不确定这是否是您要寻找的东西,但这是我会尝试的:

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

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

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

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

希望这可以帮助!

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

webBrowser.DocumentCompleted += webBrowser_DocumentCompleted;

您的类中必须有一个带有此签名的方法,您可以在其中进行所需的编码:

void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    // Do something after the document is loaded.
}

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

        }
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM