VB.NET - веб-браузер зависает при переходе от события загрузки формы - PullRequest
1 голос
/ 11 октября 2009

Я пытаюсь загрузить страницу YouTube с помощью Visual Studio 2008 и очень простого проекта Visual Basic, который содержит только WebBrowser. Я хочу загрузить страницу при загрузке формы:

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? Кажется, это происходит только тогда, когда я помещаю код навигации в событие «Загрузка формы», хм, странно.

1 Ответ

0 голосов
/ 11 октября 2009

Это, вероятно (почти наверняка), происходит потому, что событие Load формы происходит перед первым событием Paint, поэтому иногда веб-браузер завершает переход к Google (или где-либо еще) до , когда форма рисует себя первой время, и, следовательно, веб-браузер отображается в виде белого поля.

Очень простое решение этой проблемы - просто поместить элемент управления Timer в форму с коротким интервалом (скажем, 100 мс), установить Enabled в true и в его событии Tick отключить таймер. а затем вызовите Navigate(...) на своем веб-браузере.

...