VB.netでWeb表示をする方法を検索すると色々出てきます。
昔は標準で搭載されているWebBrowser コントロールというモジュールを使うことで表示させていたそうです。
これは今でも使えるのですが、WebBrowser コントロールはInternet Explore7
として動作するため最近のWebサイトでは表示が崩れてしまうそうです。
「レジストリ」というWindowsの設定ファイルを書き換えることでInternet Explore11(以下IE11と表記)対応にすることができるらしいのですが、慣れていない人がレジストリを書き換えると最悪の場合Windowsが起動しなくなりますのでお勧めできない方法です。
Windows10の標準ブラウザは御存じのようにMicrosoft Edgeになっており、Windows10登場から6年余り経過した現在ではIE11では表示できないWebサイトが増えています。
Microsoft Edgeにも2種類あって初期のものはMicrosoftが作成したもの、最新版はGoogleのChromeをベースにしたものになっています。
ChromeベースのEdgeに対応したコントロールがWebView2というもので、最新のWebView2コントロールを使えばしばらくは安定に動作できそうです。
ということで、WebView2コントロールを使うことにしました。
WebBrowser コントロールは最初から組み込まれているので簡単に使えます。
ところがWebView2の参考になるソースコードのどれを試してもエラーになり
まともに動いてくれません。
WebView2コントロールを使うには別途インストールする必要があることに気づくまでかなり時間がかかりました。
インストール方法は詳しく解説されているところがありますので検索してみてください。
WebView2を使うための条件は、
1.Windows10 1803(ビルド17110)以降
2.WebView2ランタイム または Microsoft Edge (Chromium) カナリアチャネル
3.VisualStudio 2017以降
4..NET Framework 4.6.2以降
2.WebView2ランタイム または Microsoft Edge (Chromium) カナリアチャネル
3.VisualStudio 2017以降
4..NET Framework 4.6.2以降
となっています。
この中で条件を満足していないのは2.だけです。
そこでWebView2ランタイムをインストールしました。
Visual Studioを起動してメニューの「ツール」>「NuGetパッケージマネージャー」>「ソリューションのNuGetパッケージの管理」を選択し、検索欄に「WebView2」を入力すると候補一覧が表示されますので「Microsoft.Web.WebView2」を選択すると右側にインストールボタンが表示されるのでこれをクリックするとインストールされます。
これと、ソースコードの最初の行あたり、Public Class Form1 の上に
Imports Microsoft.Web.WebView2.Core
の一文がないと動作しませんでした。
WebView2を使うという宣言文です。
これも気づかずにかなり時間を無駄にしました。
わかってしまえば他のコントロールを使うときも同様にすればよい訳ですが最初は何もわからないので時間を無駄にしてしまいます。
それでも昔に比べればネットで検索することで解決の手がかりを簡単に見つけられるので良い時代になったものです。
20~30年前はマニュアルや解説本、知っている人に聞く以外に解決手段がなかったので苦労しました。
苦労した分、記憶に残ったということも言えると思います。
ネットで簡単に見つかる分、すぐに忘れてしまい、見つけたときのキーワードなどもあやふやになっているので同じWebページにたどり着くのに時間がかかることもしばしばです。
とりあえずGoogleのトップページを表示することができました。