我希望用一个webbrowser实例顺序打开一系列的url,并触发documentcompleted事件。
简易代码如下:void a(string url)
{
while(循环条件)
{
this.webbrowser.navigate(new Uri(url));
}
}private void webbrowser_documentcompleted(参数)
{
……
程序处理
}在调试的时候,我发现调用a(url)以后程序会不停地循环执行navigate(),根本不会触发documentcompleted事件。
而如果取消循环,仅仅调用一次navigate则可以触发事件。我的想法是,程序在执行a(url)的时候不会因为调用navigate而暂时挂起,而是不停地调用新的navigate使得webbrowser在载入网页没有完成的时候就被刷新,所以一直不能触发documentcompled。所以,想请教高手这个问题应该怎么解决。谢谢。
简易代码如下:void a(string url)
{
while(循环条件)
{
this.webbrowser.navigate(new Uri(url));
}
}private void webbrowser_documentcompleted(参数)
{
……
程序处理
}在调试的时候,我发现调用a(url)以后程序会不停地循环执行navigate(),根本不会触发documentcompleted事件。
而如果取消循环,仅仅调用一次navigate则可以触发事件。我的想法是,程序在执行a(url)的时候不会因为调用navigate而暂时挂起,而是不停地调用新的navigate使得webbrowser在载入网页没有完成的时候就被刷新,所以一直不能触发documentcompled。所以,想请教高手这个问题应该怎么解决。谢谢。
{
this.webbrowser.navigate(new Uri(url));
System.Threading.Thread.Sleep(3000);
}
private int n;//当前打开的URL的索引void a()
{
n=0;
this.webbrowser.navigate(new Uri(t[n])); } private void webbrowser_documentcompleted(参数)
{
n+=1;
this.webbrowser.navigate(new Uri(t[n])); ……
程序处理
}
个人愚见,不知可不可行
全局变量int n;//当前URL的索引void a()
{
n=0;
this.webbrowser.navigate(new Uri(t[n])); } private void webbrowser_documentcompleted(参数)
{
n+=1;
this.webbrowser.navigate(new Uri(t[n])); ……
程序处理
}
个人愚见,不知可不可行
{
this.webbrowser.navigate(url);
} private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
webBrowser1.Navigate(webBrowser1.Url);
}
to iiceberg ZengHD: 这不失为一种方法,我回头试试。不过webbrowser有没有什么参数设置,可以让navigate在执行的时候其他的操作暂时停止呢?