WebBrowserコントロールでHTML文書を表示させられるが変更できなかったその原因
C#のお話でWebBrowserコントロールでHTMLを表示するときのお話。
WebBrowserコントロールは、DocumentTextプロパティにHTML文書の文字列を設定することにより、Webページを表示することができる。
んで、(デバッグ用にダウンロードしたHTMLを表示するフォームを作っていて)なぜか次のページを表示するときにDocumentTextプロパティに次のHTML文書を設定しても、内容が変更されなかった。
調べてみると、WebBrowserに表示されたリンクを操作出来ないように、AllowNavigationプロパティをtrueにしていた。この設定は間違いであった。
このプロパティは「コントロールの初期ページが読み込まれた後に、コントロールが別のページに移動できるかどうかを示す値を取得または設定」するもの。
つまり、初期ページが表示されたら、変更できなくなるように設定してしまったのだ。ということでfalseにすれば、DocumentTextプロパティに入れた値が反映されるようになる。めでたしめでたし。(リンクなどのWeb操作ができてしまうのはしょうがない)
よくわからんのはDocumentTextプロパティに値を変更する前に、AllowNavigationプロパティをfalseに(動的に)変更しても、DocumentTextプロパティ変更が反映されない。つまり、統合環境のフォームエディタでAllowNavigationプロパティをfalseに設定しておくしかないようだ。
ついでに、ScriptErrorsSuppressedプロパティをfalseにすると、JavaScriptの実行がエラーとなった場合、エラーダイアログが表示されてしまう。これが嫌ならtrueにしておくべし。(.NET Framework 2.0と3.5では値と意味が逆になっている。上記の説明は3.5の方)
« 白状しよう。予約してしまったのだよ、VAIO type Pを! | トップページ | でじぱら(電撃大王 2009年2月号)の用語について調査 »
« 白状しよう。予約してしまったのだよ、VAIO type Pを! | トップページ | でじぱら(電撃大王 2009年2月号)の用語について調査 »
コメント