2011-11-17 4 views
1

私はWebBrowserを使用しています。私は.Navigate(some_local_html)に電話しようとしていますが、ブラウザに何も表示されません。 MessageBox.Show()を使用すると、メッセージが表示されている間にブラウザでHTMLが表示されます。しかし、MessageBoxを閉じると、htmlがもう一度表示されません。C#WebBrowserはコンテンツを表示しません

私はTry-catchを試みましたが、エラーはありませんでした。

私はwebBrowserのコントロールに既定のURLを設定しようとしていましたが、結果はありません。私は何も見ることができません。

は解決済み:スレッドそのものではなく、スレッドのいくつかの種類ではなかった

を。それが理由です...

Stream stream = null; 
webBrowser1.DocumentStream = stream; 

、それを削除するのを忘れ:私は次のコードを追加しました。 ありがとうございました!

+0

uはあなたが書かれているそのコードの一部... –

+1

を表示することができますどのような新しいプロジェクトでそれをテストする場合、そこにWebBrowserコントロールをドロップして、ローカルのhtmlファイルにナビゲートどうなりますか? – CodeCaster

+1

MessageBoxはメッセージループをポンピングし、ブラウザが自分自身を描画できるようにします。 UIスレッドをループしないでください。 –

答えて

1

これはまったく役に立ちますが、メッセージボックスを上にしたときのように、バックグラウンドで何かが再描画されているように聞こえることは確かです。スレッドをスリープ状態にすると思いますので、上書き中は一時的に停止されます。

問題を引き起こしている可能性のあるスレッドを頻繁にリフレッシュまたは再描画している場合は、フォームにthread.sleep(1000)を実行するボタンを追加して、 。

1

あなたのナビゲート機能とMessageBox機能をどこで呼び出すのか知っておくと便利です。私はすぐに同様の結果が得られるかどうかを確認するためのテストを作成しましたが、以下のコードは期待どおりに正確に動作しました。

public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void Form1_Load(object sender, EventArgs e) 
    { 
     this.webBrowser1.Navigate("http://www.google.com"); 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     MessageBox.Show("Some Text"); 
    } 
} 
関連する問題