问题描述
如何实现在WebBrowser上实现逐个URL的访问,访问完前一个后再访问后一个?下面代码,在第一个,第二个没有访问完时,就访问到第三个了,最终也只得到了最后一个URL指向的内容。另外,若用Application.DoEvents来完成等待的话,如何实现终止Application.DoEvents而不退出主窗体?string[]UrlArray=newstring[]{"http://www.sina.com.cn","http://www.163.com","http://www.sohu.com"};WebBrowserwb1=newWebBrowser();for(inti=0;i<UrlArray.Length;i++){wb1.Navigate(UrlArray[i]);}
解决方案
本帖最后由 xeonfeng 于 2012-03-28 11:54:24 编辑
解决方案二:
你这样做是不行的,必须接力才行。我吧过程说一下:0,定义要访问的数组,和当前的访问指针currentIndex(全局);1,首先注册处理wb1的documentcomplete事件2,documentcomplete事件处理中,先判断当前访问到第几个了(currentIndex),然后调用wb1.Navigate(UrlArray[currentIndex++]);3,然后你只用启动第一个的访问就行了wb1.Navigate(UrlArray[0]);
解决方案三:
该回复于2012-03-28 14:00:37被版主删除
解决方案四:
可以创建互斥,documentcomplete中解除互斥
解决方案五:
1楼的方法可以用
解决方案六:
有没有朋友写好的异步的例子?
解决方案七:
该回复于2012-03-29 15:42:23被版主删除
解决方案八:
该回复于2012-03-29 16:07:50被版主删除
解决方案九:
如果你想抓取网络内容,而不是模仿浏览器展示的话,用HttpWebRequest更轻量级一点。
解决方案十:
该回复于2012-03-29 17:52:13被版主删除
解决方案十一:
VBVBVB
解决方案十二:
代码好像没问题
解决方案十三:
写这个代码需要懂什么。?
解决方案十四:
不知道你想干什么?
解决方案十五:
inturlIndex=0;string[]UrlArray=newstring[]{"http://www.sina.com.cn","http://www.163.com","http://www.sohu.com"};WebBrowserwb1=newWebBrowser();wb1.DocumentCompleted+=newWebBrowserDocumentCompletedEventHandler(webbrowser_DocumentCompleted);wb1.Navigate(UrlArray[urlIndex]);voidwebbrowser_DocumentCompleted(objectsender,WebBrowserDocumentCompletedEventArgse){//处理urlInex++;if(urlIndex<UrlArray.Length){wb1.Navigate(UrlArray[urlIndex]);}else{MessageBox.Show("完成");}}
解决方案:
vbvbbvbvb
解决方案:
该回复于2012-03-30 08:40:19被版主删除
解决方案:
该回复于2012-03-30 08:40:20被版主删除
解决方案:
想要模拟HTTP请求?!否则,你要实现这样的功能做什么?这样的写法,好无意义?
解决方案:
该回复于2012-03-30 09:16:14被版主删除
解决方案:
该回复于2012-03-30 09:14:43被版主删除
解决方案:
该回复于2012-04-05 13:44:52被版主删除
解决方案:
因为有很多cookie需要处理,所以偷懒了一下,没有用HttpWebRequest!继续,看看有没有写好的异步并顺序请求多个URL!
解决方案:
因为有很多cookie需要处理,所以偷懒了一下,没有用HttpWebRequest!继续,看看有没有写好的异步并顺序请求多个URL!
解决方案:
引用14楼的回复:
C#codeinturlIndex=0;string[]UrlArray=newstring[]{"http://www.sina.com.cn","http://www.163.com","http://www.sohu.com"};WebBrowserwb1=newWebBrowser();wb1.DocumentCompleted+=n……
good...
解决方案:
该回复于2012-03-30 14:43:45被版主删除
解决方案:
该回复于2012-04-15 11:46:42被版主删除
解决方案:
该回复于2012-03-31 09:55:35被版主删除
解决方案:
写这个代码需要懂什么。?
解决方案:
哈哈,我又来了。谢了哈
解决方案:
该回复于2012-03-31 16:34:14被版主删除
解决方案:
学到一招
解决方案:
1楼的方法可以用1楼的方法可以用
解决方案:
该回复于2012-04-02 16:16:25被版主删除
解决方案:
这不要用什么同步,反而性能不佳14L的处理方式可以
解决方案:
该回复于2012-04-02 16:20:45被版主删除
解决方案:
1楼的方法可以用
解决方案:
好文章啊。好掉线了
解决方案:
1楼的方法确实可以用
解决方案:
该回复于2012-04-05 10:34:08被版主删除
解决方案:
该回复于2012-04-05 10:34:08被版主删除
解决方案:
string[]UrlArray=newstring[]{"http://www.sina.com.cn","http://www.163.com","http://www.sohu.com"};WebBrowserwb1=newWebBrowser();for(inti=0;i<UrlArray.Length;i++){wb1.Navigate(UrlArray[i]);while(wb1.IsBusy)Application.DoEvents();}
解决方案:
该回复于2012-04-05 08:32:21被版主删除
解决方案:
该回复于2012-04-05 08:32:21被版主删除
解决方案:
可以用定时器也可以用1楼的方法哈哈
解决方案:
该回复于2012-04-05 09:10:54被版主删除
解决方案:
用DocumentCompleted事件来捕获是否已经访问完成一个网页
解决方案:
该回复于2012-04-05 13:11:14被版主删除
解决方案:
该回复于2012-04-05 13:52:19被版主删除
解决方案:
webbrowser1.navgate('www.abc.com');Application.DoEvents();给我分吧,谢谢
解决方案:
好文章啊