2015-07-03 81 views
0

我希望我的应用程序能够等到Web浏览器加载完毕后才能使用DocumentCompleted事件,但问题是我正在使用awesmoium webkit并且LoadingFrameComplete事件不会触发。当谷歌在谷歌搜索IAM IAM一样并搜查“VB.NET”它不烧,所以我想暂停address changed事件,等到Web控件加载,而我在LoadingFrameComplete事件设置像如何在不冻结用户界面的情况下等待事件发生

public Sub webcontrol_addresschanged(sender As Object, e As Awesomium.Core.UrlEventArgs) 
//WAIT UNTIL WEB CONTROL LOADS 
//DO Something" 
End sub 

代码我试过使用'do until'循环,但它冻结了gui,并且web控件没有导航。

+0

您可以使用Async事件处理程序及其中的Await操作来避免冻结。 https://msdn.microsoft.com/en-us/library/hh191443.aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1 –

+0

非常感谢我非常非常努力 – user3772967

回答

-1

创建模块,将其命名为任何东西(除了延迟)

复制 - 粘贴模块,这些代码

代码:

Sub Delay(ByVal dblSecs As Double) 
    Const OneSec As Double = 1.0#/(1440.0# * 60.0#) 
    Dim dblWaitTil As Date 
    Now.AddSeconds(OneSec) 
    dblWaitTil = Now.AddSeconds(OneSec).AddSeconds(dblSecs) 
    Do Until Now > dblWaitTil 
     Application.DoEvents() ' Allow windows message to be processed 
    Loop 
End Sub 

现在,保存它返回到您的窗体的代码

类型This

public Sub webcontrol_addresschanged(sender As Object, e As Awesomium.Core.UrlEventArgs) 
Delay(2) 'Delay(x) means x seconds of delay before executing next command without freezing UI 
//DO Something" 
End sub 
相关问题