9
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

最もシンプルなWebブラウザを作ってみた

Last updated at Posted at 2018-03-06

Visual Studio 2017 を起動したら,「新しいプロジェクト」から「Windows フォームアプリケーション(.NET Framework)」を選択し,新しいソリューションを作成する。

新しいビットマップ イメージ#01.png

標準のフォームに ComboBox コントロールと WebBrowser コントロールを配置し,レイアウトを整える。

新しいビットマップ イメージ#02.png

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));
    }

新しいビットマップ イメージ#03.png

その他,ページ内のハイパーリンクをたどるなどして別のページに遷移したときには,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 ページを表示するブラウザの動作について確認することができる。

新しいビットマップ イメージ#04_実行例.png

標準の 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 コンテンツを表示することができるようになる。

新しいビットマップ イメージ#05_実行例.png

9
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?