Visual Studio 2017 を起動したら,「新しいプロジェクト」から「Windows フォームアプリケーション(.NET Framework)」を選択し,新しいソリューションを作成する。
標準のフォームに ComboBox コントロールと WebBrowser コントロールを配置し,レイアウトを整える。
ComboBox インスタンス(comboBox1)の KeyDown イベントハンドラに,[Enter] キーが押されたら,テキストボックスの URL の Web ページが表示されるようにコードを記述する。WebBrowser インスタンスの Navigate メソッドは,引数に URL を与えることで Web ページを表示してくれる。その際,String 型の comboBox1.Text について new キーワードを用いて Uri 型にキャストする。
private void comboBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
webBrowser1.Navigate(new Uri(comboBox1.Text));
}
その他,ページ内のハイパーリンクをたどるなどして別のページに遷移したときには,ComboBoxに新しい URL を表示する。(webBrowser1_Navigated)
private void comboBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
webBrowser1.Navigate(new Uri(comboBox1.Text));
}
private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e)
{
if (webBrowser1.Url != null)
comboBox1.Text = webBrowser1.Url.ToString();
}
プログラムをコンパイル・実行すると,入力した URL の Web ページを表示するブラウザの動作について確認することができる。
標準の WebBrowser コントロールは Internet Explorer 7 によるレンダリングにしか対応していない。そこで,最新の Internet Explorer 11, Edgeモードに対応させるには,レジストリを編集しないといけない。詳しくは,次の情報が頼りになる:
WebBrowser コントロールのInternet Explorerを最新のバージョンに変更する (C#プログラミング)
https://www.ipentec.com/document/csharp-change-webbrower-control-internet-explorer-version
そうすると, canvas など最新の HTML5 に対応した Web コンテンツを表示することができるようになる。