1

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 回に 1 回発生しますが、状況によって異なります)、フォームに空白の白いボックスが表示されます。

誰かがなぜこれが起こるのか理解するのを手伝ってくれませんか.

編集: この「フリーズ」は、 http://www.google.comなどの任意のページで発生します。WebBrowser コントロールが壊れていますか? Form Load イベントにナビゲート コードを配置した場合にのみ発生するようです。

4

1 に答える 1

0

これはおそらく(ほぼ確実に)フォームのLoadイベントが最初のPaintイベントの前に発生するために発生します。そのため、フォームが最初にペイントする前にWebBrowserがGoogle(またはどこでも)への移動を終了することがあります。したがって、WebBrowserは次のように表示されます。ただの白い箱。

この問題の非常に簡単な解決策は、短い間隔(たとえば、100ミリ秒)でタイマーコントロールをフォームに配置し、に設定Enabledtrue、そのTick場合はタイマーを無効にしてからWebブラウザを呼び出すNavigate(...)ことです。

于 2009-10-11T01:45:19.960 に答える