C#
.NETFramework

ちょっと癖のあるWebBrowserコントロールで、HTML文字列を直接かつ繰り返し反映させるTips

More than 1 year has passed since last update.

はじめに

.NET Framework (Windows.Forms) のコントロールのひとつである WebBrowserコントロール は、Navigate メソッド を呼び出したりすることで、Windowsフォーム上に手軽にWebページを表示させることができる便利なものです。

DocumentTextプロパティにHTML文字列を指定すると、コンテンツ(ファイル)を外部へ用意せずに直接表示させることもできますが、ブラウザ表示に反映されるのが基本的に1回限りです(Navigateメソッド を呼ぶとまた利用できる?)

対策

DOM アクセス (Documentプロパティ) で、Body要素InnerHtmlプロパティ に書き込みます。

            if ((webBrowser1.Document != null) && (webBrowser1.Document.Body != null))
                webBrowser1.Document.Body.InnerHtml = "<p>THE 2ND DOCUMENT.</p>";

この方法であれば、任意のタイミングでHTML文字列を指定して、何度でも表示に反映させることができます。

さいごに

ざっと調べた内容のため、補足等随時掲載します。
ほかにもっと簡単な方法がありましたら、教えていただけると嬉しいです。