C#/VB.NET フォームにWebページを表示する方法 WebView2 Chromium Edge対応

C#やVB.NETでのフォームにWebページを表示する方法について解説します。

フォームにWebページを表示することはできますか?

WebView2コントロールを利用することでフォームにWebページを表示することができます。Edgeにも対応しています。

目次

フォームにWebページを表示する

WebView2

 WebView2を利用することで、フォームにchrome Edgeに対応したWebページを表示することができるようになります。WebView2は初期の状態ではツールボックスに入っていないので、Visual Studioの機能のNugetから入手します。

チェック!

最新のWindowsアップデートがかかっていない場合は、WebView2のランタイムの導入が必要になる可能性があります。

NugetからWebView2コントロールを入手する

  ツール>NuGetパッケージマネージャ>ソリューションのNuGetパッケージの管理を選択します。

nugetパッケージマネージャー

NuGetの管理画面が開いたら、参照タブをクリックし、。検索タブにWebView2と入力して検索します。

一番上にMicrosoftから提供されているWebView2が出てきますので選択し、追加するプロジェクトを選択してインストールを選択します。

Nuget参照

これでWebView2コントロールを利用できるようになりました。

ツールバー

スクリプトからURLを設定して表示する

 WebView2コントロールにWebページを表示するには、WebView2コントロールのsoureプロパティにUriオブジェクトを指定します。Uriオブジェクトは、new演算子とURLで以下のように記述し生成します。

以下は、テキストボックスに入力したURLのサイトをボタンを押すことで表示できるサンプルになります。

        private void button1_Click(object sender, EventArgs e)
        {
            //URLをuriに変換
            Uri uri = new Uri(textBox1.Text);

            //webView2のsourceプロパティにuriをセット
            webView21.Source = uri;
        }
Private Sub button1_Click(sender As Object, e As EventArgs)
            'URLをuriに変換
            Dim uri As Uri = New Uri(textBox1.Text)

            'webView2のsourceプロパティにuriをセット
            webView21.Source = uri
End Sub

 このコードは、WebView2コントロールを使ってWebページを表示するためのものです。WebView2コントロールは、フォームにChromium Edgeに対応したWebページを表示することができます。

 このコードでは、ボタンを押すとテキストボックスに入力したURLをUriオブジェクトに変換し、WebView2のsourceプロパティに設定することでWebページを表示するという流れになります。

スクロールバーの設定方法

 WebBrowserコントロールで表示するWebページにスクロールバーを表示することができます。そのためには、WebBrowserコントロールの「ScriptErrorsSuppressed」プロパティを「false」に設定して、「ScrollBarsEnabled」プロパティを「true」に設定する必要があります。

webBrowser1.ScriptErrorsSuppressed = false;
webBrowser1.ScrollBarsEnabled = true;
webBrowser1.ScriptErrorsSuppressed = False
webBrowser1.ScrollBarsEnabled = True

Webページの読み込み進捗状況をプログレスバーで表示する

 Webページの読み込み進捗を確認するためには、WebBrowserコントロールに紐付いたProgressBarコントロールを利用することができます。

private void webBrowser1_ProgressChanged(object sender, WebBrowserProgressChangedEventArgs e)
{
    if (e.CurrentProgress > 0 && e.MaximumProgress > 0)
    {
        progressBar1.Value = (int)(e.CurrentProgress * 100 / e.MaximumProgress);
    }
}
Private Sub webBrowser1_ProgressChanged(ByVal sender As Object, ByVal e As WebBrowserProgressChangedEventArgs)
    If e.CurrentProgress > 0 AndAlso e.MaximumProgress > 0 Then
        progressBar1.Value = CInt(e.CurrentProgress * 100 / e.MaximumProgress)
    End If
End Sub

フォームにWebページを実装することができました。

過去のWebBrowserコントロールは、IEの保守終了とともに最新のVisual Studioでは使えなくなっているので、WebView2に切り替えていきましょう。

リスキリングでキャリアアップしてみませんか?

リスキリング(学び直し)は、経済産業省が推奨しており、

今だけ、最大70%のキャッシュバックを受けることができます。

リスキリング 給付金が出るスクール紹介

最大70%の給付金が出るおすすめのプログラミングスクール!

国策で予算が決められているため申し込みが多い場合は早期に終了する可能性があります!

興味のある方はすぐに確認しましょう。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次