2012年07月15日

WebBrowserコントロールで簡素なWebブラウザを作る(C#)

WebBrowserコントロールはWebブラウザとしての基本的な機能を持っているため、これを使うことで簡単なWebブラウザを作ることができます。(この手の情報はネット上に腐るほどあるんですが)

まず、新規プロジェクトを作成して、下記のコントロールを貼り付けます。 コントロール名称はデフォルトのままで。

  • WebBrowser(Webブラウザとしての中核)
  • ComboBox(URL入力用)
  • Button×5(「戻る」「進む」「更新」「ホーム」「移動」ボタン)

コードは下記のようになります。説明はコード中のコメントで。

public Form1()
{
    InitializeComponent();

    this.comboBox1.Text = "http://www.google.com";
    this.button1.Text = "戻る";
    this.button2.Text = "進む";
    this.button3.Text = "更新";
    this.button4.Text = "ホーム";
    this.button5.Text = "移動";
}

/// <summary>
/// URL入力エリア:選択変更
/// </summary>
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
    try
    {
        // 移動
        webBrowser1.Navigate(comboBox1.Text);
    }
    catch
    {
    }
}

/// <summary>
/// Webブラウザ:ナビゲーション実行時
/// </summary>
private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e)
{
    // フォームのタイトルをナビゲートしたサイトのタイトルを設定
    this.Text = webBrowser1.Document.Title.ToString();
    // URL入力エリアにナビゲートしたサイトのURLを設定
    this.comboBox1.Text = webBrowser1.Url.ToString(); 
}

/// <summary>
/// 戻るボタン
/// </summary>
private void button1_Click(object sender, EventArgs e)
{
    // 戻る
    this.webBrowser1.GoBack();
}

/// <summary>
/// 進むボタン
/// </summary>
private void button2_Click(object sender, EventArgs e)
{
    // 進む
    this.webBrowser1.GoForward();
}

/// <summary>
/// 更新ボタン
/// </summary>
private void button3_Click(object sender, EventArgs e)
{
    // 更新(再読み込み)
    this.webBrowser1.Refresh();
}

/// <summary>
/// ホームボタン
/// </summary>
private void button4_Click(object sender, EventArgs e)
{
    // ホームへ移動
    this.webBrowser1.GoHome();
}

/// <summary>
/// 移動ボタン
/// </summary>
private void button5_Click(object sender, EventArgs e)
{
    // 入力したURLに移動する
    try
    {
        string url = comboBox1.Text;
        // "http://"が無ければ補完
        if (comboBox1.Text.StartsWith("http://") == false)
        {
            url = "http://" + url;
        }
        // 移動
        webBrowser1.Navigate(url);
        comboBox1.Items.Add(url);
    }
    catch
    {
    }
}

/// <summary>
/// URL入力エリア:キー入力
/// </summary>
private void comboBox1_KeyDown(object sender, KeyEventArgs e)
{
    // エンターキー
    if (e.KeyCode == Keys.Enter)
    {
        // 移動ボタン入力と同じ
        button5.PerformClick();
    } 
}

/// <summary>
/// Webブラウザ:新しいウィンドウが開かれたとき
/// </summary>
private void webBrowser1_NewWindow(object sender, CancelEventArgs e)
{
    // キャンセル
    e.Cancel = true;

    // ここではキャンセルしているので新しいウィンドウは開かないし画面遷移もしない
    // 新しいウィンドウを開かずに内部のブラウザで開くためにはwebBrowserの改造が必要。
    // 今回は省略
    // [参照]
    // http://agrimo.jp/wp/?page_id=1059
    // http://vsug.jp/tabid/63/forumid/45/threadid/9273/scope/posts/Default.aspx
}

実行結果はこんな感じです。
webBrowser-Sample-01.png

良かったらクリックしてください
にほんブログ村 IT技術ブログ プログラム・プログラマーへ  人気ブログランキングへ

タグ:C# WebBrowser
posted by among at 08:05 | Comment(0) | TrackBack(0) | C#
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/57054492

この記事へのトラックバック