VB.NET - Webrowser在从Form Load事件导航时冻结

时间:2009-10-10 23:48:11

标签: vb.net youtube browser youtube-api

我正在尝试使用Visual Studio 2008加载一个YouTube页面,以及一个只包含WebBrowser的非常简单的Visual Basic项目。我想在表单加载时加载页面:

Private Sub Form1_Load(ByVal sender As Object, 
    ByVal e As System.EventArgs) Handles Me.Load
    WebBrowser1.Navigate("http://code.google.com/apis/youtube/js_example_1.html")
End Sub

现在每一个&然后(每3-5次发生一次,但会有所不同),表格只显示一个空白框。

有人可以帮我理解为什么会这样。

编辑:此“冻结”适用于任何页面,例如http://www.google.com。我的WebBrowser控件坏了吗?只有当我将导航代码放在Form Load事件中时才会发生,嗯奇怪。

1 个答案:

答案 0 :(得分:0)

这可能(几乎可以肯定)发生,因为表单的Load事件发生在它的第一个Paint事件之前,因此WebBrowser偶尔会在之前导航到Google(或任何地方),表单会自行绘制第一次,因此WebBrowser只显示一个白框。

解决这个问题的一个非常简单的方法就是在窗体上放置一个Timer控件,使用一个短的Interval(比方说,100 ms),将Enabled设置为true,并在其{{1 event禁用Timer,然后在WebBrowser上调用Tick