Foxtable(狐表)用户栏目专家坐堂 → [求助]关于webbrowser控件加载完成问题


  共有3941人关注过本帖树形打印复制链接

主题:[求助]关于webbrowser控件加载完成问题

帅哥哟,离线,有人找我吗?
jspta
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1732 积分:11266 威望:0 精华:0 注册:2011/12/15 22:06:00
[求助]关于webbrowser控件加载完成问题  发帖心情 Post By:2015/2/26 11:19:00 [只看该作者]

 以下代码本意是想当网页加载完成后(使用DocumentCompleted事件),使LoadReady由False变成True,然后跳出循环,目的是函数结束时,返回一个数组。
但是在循环体或者说整个过程中LaodReady一直是False除非触发了messagebox才会变True,如何解决?
Dim n As Integer = 0
            Do Until n > 5
                If LoadReady = True Then
                    Exit Do
                Else
                    System.Threading.Thread.Sleep(2000)
                    n = n + 1
                    If n > 5 Then
                        MessageBox.Show("查询失败,请确保网络正常后,重新尝试")
                    End If
                End If
            Loop
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:网页测试.foxdb


[此贴子已经被作者于2015/2/26 12:56:46编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/2/26 11:20:00 [只看该作者]

参考这个例子, 有个加载完成事件


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/2/26 11:24:00 [只看该作者]

 为什么不直接在 DocumentCompleted 事件处理?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/2/26 11:29:00 [只看该作者]

 测试了一下,只要改变了 LoadReady 的值,没有你说的那种情况。

 

 具体问题,请上传例子。


 回到顶部
帅哥哟,离线,有人找我吗?
jspta
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1732 积分:11266 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2015/2/26 11:31:00 [只看该作者]

以下是引用有点甜在2015/2/26 11:24:00的发言:
 为什么不直接在 DocumentCompleted 事件处理?
如果挂在DocumentCompleted 事件中,如何在事件结束时,返回一个值?或者说如何在事件过程中赋值,并在事件结束后,把这个值返回个调用者?
        Sub DocumentCompletedEventHandler(ByVal sender As System.ObjectByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgsHandles _WebBaseControl.DocumentCompleted
            Dim web As System.Windows.Forms.WebBrowser = sender
            If web.ReadyState = System.Windows.Forms.WebBrowserReadyState.Complete Then 
                Dim doctext As String = web.DocumentText.Replace("""""")
                If doctext.Contains("status:201"Then 
                    
                Else
                    JsonText = web.DocumentText '为了获得这个值,并执行一定的代码,最终返回执行后的一个数组?有什么办法可以获得,或者通知程序这个已经执行完成了?
                    LoadReady = True
                End If
            End If
        End Sub


 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/2/26 11:32:00 [只看该作者]

你直接在这里写上你完成操作需要处理的代码即可

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/2/26 11:44:00 [只看该作者]

 直接设置 LoadReady 的值啊,循环判断 LoadReady 的值即可,肯定是可以的。

 

 不行,你就做个例子上来。


 回到顶部
帅哥哟,离线,有人找我吗?
jspta
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1732 积分:11266 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2015/2/26 12:58:00 [只看该作者]

上传了附件了,请帮忙下。就是需要立即获得,并且要继续处理。而不是点击Button2

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/2/26 14:08:00 [只看该作者]

没有问题的啊.正常获取值,获得之后你继续把操作代码写到里面去即可

 回到顶部
帅哥哟,离线,有人找我吗?
jspta
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1732 积分:11266 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2015/2/26 14:16:00 [只看该作者]

以下是引用Bin在2015/2/26 14:08:00的发言:
没有问题的啊.正常获取值,获得之后你继续把操作代码写到里面去即可
点击BUTTON1 第一个message弹出的时候就是空白啊,必须在事件中弹出message,才会使JsonText这个变量有值。


 回到顶部
总数 17 1 2 下一页