每次写有关于这个控件的程序,都重新想了下怎么判断加载否完成,然后调试了很久。。哎,,
今天一上博客就看到dasparion也刚好发了这方面的资料
主要有两种方法:WebBrowser的ReadyState方法和Busy方法
还知道了,加载完成后出发了一个事件:
Private Sub WebBrowser1_DownloadComplete()
...触发这个事件
Sub End
之所以不好判断是否加载完成,主要是,程序加载的时候,WebBrowser1的状态是FLASE,
下面一个例子:
Private Sub Form_Load()
Debug.print WebBrowser1.Busy '程序启动开始,为FLASE,也就是WebBrowser1不工作的状态,
我们判断是否加载完成也就要判断Busy的状态,
那么首先判断的是为FLASE,初始化,WebBrowser1是不工作的,那就会造成误判了,,,因为这样,就一直在调试.
WebBrowser1.Navigate "www.baidu.com"
Do While WebBrowser1.Busy'等待加载完成.
DoEvents
Loop
MsgBox "加载完成!", vbOKOnly, "!"
End Sub
这个是dasparion那的...比较具体,很有用,转来收藏啦.
ReadyState的五种状态
0:(Uninitialized) the send( ) method has not yet been invoked.1:(Loading) the send( ) method has been invoked,request in progress.
2:(Loaded) the send( ) method has completed,entire response received.
3:(Interactive) the response is being parsed.
4:(Completed) the response has been parsed,is ready for harvesting.
【关于判断WebBrowser1加载状态 转帖】0-(未初始化)还没有调用send()方法
1-(载入)已调用send()方法,正在发送请求
2-(载入完成)send()方法执行完成,已经接收到全部响应内容
3-(交互)正在解析响应内容
4-(完成)响应内容解析完成,可以在客户端调用了测试代码(添加WebBrowser控件并命名为:Browser,添加CommandButton控件命名为cmdTest)
Private Sub cmdSTest_Click()
Browser.Navigate "http://hi.baidu.com"
Do Until Browser.ReadyState = 4
DoEvents
LoopMsgBox "加载完成!", vbOKOnly, "!"
End Sub
推荐阅读
- C#|C# 文件路径操作
- C# 接口实例
- C#|10、接口、抽象、密封、开放封闭原则
- c#|11、C#处理程序异常的技术
- C#|九、C#结构 类 属性
- C#|c# HashtableTo Json 字符串 HashtableToWxJson
- 分表分库(百亿级大数据存储)
- C#|微信小程序开发系列(六)——“处理请求时出错”怎么处理()
- c#做的一个简单的包含实时进度的进度条
- asp.net|c#文件写入与获取post请求数据