本来以为用Application.DoEvents()可解决,但调试后结果还是一样。
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,下一次循环随即开始执行.
}
4 个解决方案
#1
xxxBrowser在加载页面后会抛出 DonwloadCompleted(类似)事件通知你的。
#2
不是有带Completed的事件吗
#3
不是有带Completed的事件吗
#4
不是complete事件的问题,我试过了,无效的。
#1
xxxBrowser在加载页面后会抛出 DonwloadCompleted(类似)事件通知你的。
#2
不是有带Completed的事件吗
#3
不是有带Completed的事件吗
#4
不是complete事件的问题,我试过了,无效的。