http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 2618|回复: 1

[其他] 如何让WebBrowser控件按顺序加载完一个网页后再加载另外一个?

[复制链接]
发表于 2014-4-18 00:13:42 | 显示全部楼层 |阅读模式
有一组网页,想让WebBrowser控件按顺序展示它们,也就是加载完一个网页后再加载另一个,但是用for循环语句的话,WebBrowser控件会不等第一个网页加载完就很快循环到最后一个网页,这个问题应该怎么解决?请教各位高手。代码如下:
[C#] 纯文本查看 复制代码
public MainForm()
{
//
// The InitializeComponent() call is required for Windows Forms designer support.
//
InitializeComponent();
wb1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(wb1_DocumentCompleted);

}
bool flag =true;
void Button1Click(object sender, EventArgs e)
{
string[] str = new string[2];
str[0] = "www.aipai.com";
str[1] = "www.sina.com.cn";
int i;

for (i = 0; i <= 1 ; ++i)
{

string url = str[i];
wb1.Navigate(url);
int j= 0;
while(flag)
{
Application.DoEvents();
j = j +1;
}
}
}

private void wb1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
listBox1.Items.Insert(0, wb1.ReadyState);
listBox1.Items.Insert(1, wb1.IsBusy);

if (wb1.ReadyState < WebBrowserReadyState.Complete)
return; 
flag = false;
}

但是我在下午浏览一个第一个url的时候,第一次进入Application.DoEvents()程序就飞了,无法执行j=j+1,到了晚上却可以,有没有方法替换Application.DoEvents() ??


1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2014-4-18 08:28:29 | 显示全部楼层
http://www.sufeinet.com/thread-3941-1-1.html看第19个应该就明白了
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-11-24 03:56

© 2014-2021

快速回复 返回顶部 返回列表