2023年11月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    
無料ブログはココログ

 

« 白状しよう。予約してしまったのだよ、VAIO type Pを! | トップページ | でじぱら(電撃大王 2009年2月号)の用語について調査 »

2009年1月11日 (日)

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月号)の用語について調査 »