C#やVB.NETでのフォームにWebページを表示する方法について解説します。
フォームにWebページを表示することはできますか?
WebView2コントロールを利用することでフォームにWebページを表示することができます。Edgeにも対応しています。
フォームにWebページを表示する
WebView2を利用することで、フォームにchrome Edgeに対応したWebページを表示することができるようになります。WebView2は初期の状態ではツールボックスに入っていないので、Visual Studioの機能のNugetから入手します。
最新のWindowsアップデートがかかっていない場合は、WebView2のランタイムの導入が必要になる可能性があります。
NugetからWebView2コントロールを入手する
ツール>NuGetパッケージマネージャ>ソリューションのNuGetパッケージの管理を選択します。
NuGetの管理画面が開いたら、参照タブをクリックし、。検索タブにWebView2と入力して検索します。
一番上にMicrosoftから提供されているWebView2が出てきますので選択し、追加するプロジェクトを選択してインストールを選択します。
これで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%の給付金が出るおすすめのプログラミングスクール!
国策で予算が決められているため申し込みが多い場合は早期に終了する可能性があります!
興味のある方はすぐに確認しましょう。