c#winform中怎么让webbrowser控件下载完成后继续后面的程序

我想让webbrowser导航后,程序就暂停了,等webbrowser下载完成后,再继续以后的程序
请问各位怎么实现?
由于是写在循环中的,所以没法用webbrowser1_DocumentCompleted方法实现
代码片段
private bool Login(string url)
{
webbrowser1.Navigate(url);
//分析页面内容
……
……
……
}
怎样在webbrowser1.Navigate(url)执行后,程序就暂停,等待webbrowser1下载完成后再分析页面内容
期待高手解决,谢谢各位了
谢谢linv2
linv2的方法是可以,但是,这样的话,计算机一直处于循环运行状态,CPU一直居高不下,不太好,能不能让他1秒检查一次状态,就是循环中加个定时器,1秒钟循环一次,
非常谢谢

贴代码

---------------------------
while (true)
{
if (webBrowser1.ReadyState == WebBrowserReadyState.Complete)//判断
{
break;
}
}
----------------------
一、拖一时间控件
Interval属性设为1000,1秒执行一次,其他默认
二、另外写一个函数,里边写当webBrowser1加载完后要执行的内容
三、当webbrowser1.Navigate(url)执行后时间控件开始执行timer1.Enabled=true;
在时间控件的Tick做判断
if (webBrowser1.ReadyState == WebBrowserReadyState.Complete)//判断
{
timer1.Enabled=false; //当加载完毕后,停止时间控件
//执行另外的函数,即步骤二
}
-------------------------------------------------------

实在找不出更好的办法了。你要找出更好的贴出来学习下。
温馨提示:内容为网友见解,仅供参考
第1个回答  2020-03-17
webBrowser1_DocumentCompleted,这个事件,就是页面加载完成。然后你可以在这里面写代码。这部分代码就会在页面加载完成的时候才执行。
第2个回答  2020-11-05
webBrowser
1_DocumentCompleted这个事件里完成,有时候这个事件会执行两次,你可以在这个事件内完成你的代码后,卸载这个事件,需要的时候再加上去就可以了

c#winform中怎么让webbrowser控件下载完成后继续后面的程序
一、拖一时间控件 Interval属性设为1000,1秒执行一次,其他默认 二、另外写一个函数,里边写当webBrowser1加载完后要执行的内容 三、当webbrowser1.Navigate(url)执行后时间控件开始执行timer1.Enabled=true;在时间控件的Tick做判断 if (webBrowser1.ReadyState == WebBrowserReadyState.Complete)\/\/判断 ...

c#中如何做到等待webbrowser加载完成并且获取了网页代码之后后再运行下...
假设你的webbrowser控件name是wb 那么在这个事件写就行了。private void wb_DocumentCompleted(object sender, WebBrowserNavigatedEventArgs e){ if (e.Url.ToString() != extendedWebBrowser1.Url.ToString())return;if (extendedWebBrowser1.ReadyState != WebBrowserReadyState.Complete)return;string ht...

C#中 webbrowser 控件提交表单后怎么在原位置打开新的网页
那你得先看网页是怎么处理submit的,一般有两种思路,A,开新窗口webbrowse会触发NewWindow事件,你只要在这事件的处理代码中加入 e.Cancel=true;string url = this.wB_MainBrowser.Document.ActiveElement.GetAttribute("href");this.wB_MainBrowser.Url = new Uri(url);或者可以用个递归把链接的target...

C#等待执行完成后再接着执行后续的,请问要如何设计?
m_fmProgress窗体的lblDescription控件访问权限要设为public bw_RunWorkerCompleted 动作进行完做的处理 if( m_fmProgress != null ){ m_fmProgress.Hide();m_fmProgress = null;} 由于窗体的ShowDialog方法本身就是等待进程,所以不加入Process管理也可以了 ...

请问C#如何实现 webBrowser1.Navigate加载网页完成后才执行下面的语句...
在其DocumentCompleted事件中处理。

web browser控件怎么用
首先创建一个WinForm程序,拖入一个textbox控件和一个button按钮,然后拖入一个panel控件,如图所示:拖入panel控件后,找到WebBrowser控件并双击,WebBrowser控件就会自动填充到panel控件上,像下面这样:之后给button改个名,双击button按钮设置一个简单的跳转行为:private void goButton_Click(object sender, ...

C#自定义控件的时候,怎么保留以前控件的某些属性了
你是创建的UserControl,然后拖了两个Button上去?还是继承自webbrowser?如果是前者,你可以在UserControl里面定义一个属性类似如下 public webbrowser Innerwebbrowser { get { return this.webbrowser1;} } 在外部引用:UserControl.Innerwebbrowser.属性 ...

C#中的WebBrowser控件下载文件时如何调用自己的下载对话框
除非你自己写一个类似于WebBrowser的控件。不过可以提供一种曲线救国的思路。第一步,还是用系统提供的下载对话框,获取文件的下载地址。第二步,用句柄搜索到下载对话框,关闭它。第三步,调用自己的下载对话框,然后把第一步获取的地址上的文件保存到本地。希望对你有所启发和帮助。

C#如何实现用webbrowser登录成功后又跳回到登录页面?
navigationURl="javascript:parent.location.href='..\/Login.aspx'"或者top.location.href='地址'那就楼上说的 console.write(...);里面的方法不变。。。你试试看一下行不行?

c# 中实现在webBrowser控件里 打开新网页 新网页加载时的问题
webbrowser1.Navigate(url);\/\/跳转地址 this.close();\/\/关闭本窗体 这个你就算是载入新网页,要跳转的话 总得有条件吧,不能随便跳着玩啊!如果是等待网页加载完成,然后在跳转,我给你一点代码:这是用timer控件判断网页加载完成没有完成!private void timer1_Tick(object sender, EventArgs e){ i...

相似回答
大家正在搜