我正在尝试使用Visual Studio 2008和一个仅包含WebBrowser的非常简单的Visual Basic项目加载YouTube页面。我想在加载表单时加载页面:
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事件中时才发生,嗯,很奇怪。
最佳答案
这可能(几乎可以肯定)是因为表单的Load事件在其第一个Paint事件之前发生,因此WebBrowser偶尔会在第一次进行表单绘制之前完成导航到Google(或任何地方),因此WebBrowser显示为只是一个白盒子。
解决此问题的一个非常简单的方法是,将一个Timer控件以较短的时间间隔(例如100毫秒)放在窗体上,将Enabled
设置为true
,并在其Tick
事件中禁用该计时器,然后在您的WebBrowser上调用Navigate(...)
。
关于vb.net - VB.NET-从“表单加载”事件导航时,Web浏览器卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1549404/