读书人

怎么让WebBrowser控件按顺序加载完一个

发布时间: 2012-09-28 00:03:35 作者: rapoo

如何让WebBrowser控件按顺序加载完一个网页后再加载另外一个?
有一组网页,想让WebBrowser控件按顺序展示它们,也就是加载完一个网页后再加载另一个,有点像幻灯片一样展示,但是用for循环语句的话,WebBrowser控件会不等第一个网页加载完就很快循环到最后一个网页,这个问题应该怎么解决?请教各位高手。代码如下:

本来以为用Application.DoEvents()可解决,但调试后结果还是一样。

C# code
 private void btn_Click(object sender, EventArgs e)        {            string url = "http://www.aastocks.com/SC/Stock/CompanyFundamental.aspx?CFType=8&symbol=";            string[] stra = new string[5];            stra[0] = url+"00001";            stra[1] = url+"00002";            stra[2] = url+"00003";            stra[3] = url+"00004";            stra[4] = url+"00005";            GetHtml(stra);        }        bool loading = true;   //该变量表示网页是否正在加载.        string html = string.Empty;        //WebBrowser browser = new WebBrowser();        public void GetHtml(string[] urls)        {            this.webBrowser1.Navigated += new WebBrowserNavigatedEventHandler(browser_Navigated);            foreach (string url in urls)            {                loading = true;  //表示正在加载                webBrowser1.Navigate(url);                while (loading)                {                    Application.DoEvents();//等待本次加载完毕才执行下次循环.                }            }        }        void browser_Navigated(object sender, WebBrowserNavigatedEventArgs e)        {            html = webBrowser1.DocumentText;  //获取到的html.            loading = false;//在加载完成后,将该变量置为false,下一次循环随即开始执行.        }


[解决办法]
xxxBrowser在加载页面后会抛出 DonwloadCompleted(类似)事件通知你的。
[解决办法]
不是有带Completed的事件吗

读书人网 >C#

热点推荐