web browserコントロールを使うには

タグの編集
投稿者 hasumoto  (その他) 投稿日時 2022/9/11 15:58:55
はじめて、ビジュアルスタジオ2022をダウンロードインストールして、使うところです。
それで、ウエブブラウザーコントロールを使用して、ホームページを表示させたいのですが、そこでまず、できません。

ツールメニュー>ツールボックスアイテムの選択で、COMコンポーネントで、microsoft web browserを選択で、OKすると、「次のコントロールはツールボックスへ正常に追加されましたが、アクティブなデザイナーで、有効になっていません。」とメッセージが出て、OK押してから、まず、ツールボックスを見ても、web browserコントロールが見当たりません。

よろしくお願いします。
投稿者 (削除されました)  () 投稿日時 2022/9/11 20:05:33
(削除されました)
投稿者 魔界の仮面弁士  (社会人) 投稿日時 2022/9/11 20:27:48
> ツールボックスを見ても、web browserコントロールが見当たりません。
VS2022 で新規作成する際のプロジェクト テンプレートで、何を選びましたか?
名前の似たテンプレートが多数あるのでややこしいのですが、
たとえば Visual Basic 向けのデスクトップ用プロジェクトには、このようなものがあります。

① Windows フォーム アプリ
② Windows フォーム アプリケーション
③ WPF アプリケーション
④ WPF アプリ
⑤ 上記以外

たとえば①や③は .NET 6 向けのテンプレートで、
②や④は .NET Framework 向けのテンプレートです。

もしも ②や④を使っているのであれば、 COM の追加設定などせずとも、
ツールボックス上部の検索欄に Web と入力したときに WebBrowser が現れるはず。
②で使えるのは System.Windows.Forms.WebBrowser というコントロールですし、
④で使えるのは System.Windows.Controls.WebBrowser というコントロールです。


> COMコンポーネントで、microsoft web browserを選択で、
Visual Studio .NET 2003 を使っているわけではないのですし、
何か特別な理由でも無い限りは、 COM 版の利用は控えた方が良いでしょう。

また、①や③の場合は WebBrowser という名前のコントロールは含まれていません。
同等機能をもった代替コントロール (WebView2 など)をダウンロードして利用することを
検討してみてください。


ちなみに ②や④だとしても、先に述べた標準の WebBrowser や
COM 版の Web Browser というものは、Internet Explorer ベース(Trident エンジン) の
ブラウザ実装であり、最近の Web ページだと正しく表示できないケースが増えてきています。
(しかも、特に設定しない場合は IE7 相当として起動することになる)

現状は WebBrowser 以外のブラウザコントロールを選択することをおすすめします。
 たとえばこのようなものがあります。


Blink エンジン (Chromium 系)
 WebView2 コントロール (WebView2)
 ChromiumWebBrowser コントロール (CefShap)
Gecko エンジン
 GeckoBrowser コントロール (Geckofx)


ブラウザコントロールには他にも幾つかありますが、以下は既に更新されていないため
選択肢からは外れるかとおもいます。

EdgeHTML エンジン
 WebView コントロール (Microsoft.Toolkit.Forms.UI.Controls.WebView)
WebKit エンジン
 WebKitBrowser コントロール (OpenWebKitSharp)


一方、どうしても IE ベースのコントロールでなければ困るというのであれば、
引き続き WebBrowser を選択することになるとは思います。その場合は、
先の ② のテンプレートを選択するようにしてみてください。
投稿者 hasumoto  (その他) 投稿日時 2022/9/14 14:52:25
ご回答ありがとうございます。

>現状は WebBrowser 以外のブラウザコントロールを選択することをおすすめします。
 >たとえばこのようなものがあります。

たしかに、表示に難が出てくる場合が増えてるので、IE ベース以外のものにした方がよいと思いますので、そちらの方を当たってみたいと思います。