以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]关于webbrowser控件加载完成问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=64639) |
||||
-- 作者:jspta -- 发布时间:2015/2/26 11:19:00 -- [求助]关于webbrowser控件加载完成问题 以下代码本意是想当网页加载完成后(使用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
[此贴子已经被作者于2015/2/26 12:56:46编辑过]
|
||||
-- 作者:Bin -- 发布时间:2015/2/26 11:20:00 -- 参考这个例子, 有个加载完成事件 |
||||
-- 作者:有点甜 -- 发布时间:2015/2/26 11:24:00 -- 为什么不直接在 DocumentCompleted 事件处理? |
||||
-- 作者:有点甜 -- 发布时间:2015/2/26 11:29:00 -- 测试了一下,只要改变了 LoadReady 的值,没有你说的那种情况。
具体问题,请上传例子。 |
||||
-- 作者:jspta -- 发布时间:2015/2/26 11:31:00 -- 以下是引用有点甜在2015/2/26 11:24:00的发言: 为什么不直接在 DocumentCompleted 事件处理? 如果挂在DocumentCompleted 事件中,如何在事件结束时,返回一个值?或者说如何在事件过程中赋值,并在事件结束后,把这个值返回个调用者? Sub DocumentCompletedEventHandler(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles _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 -- 发布时间:2015/2/26 11:32:00 -- 你直接在这里写上你完成操作需要处理的代码即可 |
||||
-- 作者:有点甜 -- 发布时间:2015/2/26 11:44:00 -- 直接设置 LoadReady 的值啊,循环判断 LoadReady 的值即可,肯定是可以的。
不行,你就做个例子上来。 |
||||
-- 作者:jspta -- 发布时间:2015/2/26 12:58:00 -- 上传了附件了,请帮忙下。就是需要立即获得,并且要继续处理。而不是点击Button2 |
||||
-- 作者:Bin -- 发布时间:2015/2/26 14:08:00 -- 没有问题的啊.正常获取值,获得之后你继续把操作代码写到里面去即可 |
||||
-- 作者:jspta -- 发布时间:2015/2/26 14:16:00 -- 以下是引用Bin在2015/2/26 14:08:00的发言: 没有问题的啊.正常获取值,获得之后你继续把操作代码写到里面去即可 点击BUTTON1 第一个message弹出的时候就是空白啊,必须在事件中弹出message,才会使JsonText这个变量有值。
|