【やさしいC#】lesson10.2 Web

C#

Webページを表示する

  ウィンドウ上にWebページを表示することもできます。
  Webブラウザコントロールを使うと、Webページを表示することができます。

//sample3.cs Webページを表示する
using System;
using System.Windows.Forms;
using System.Net;
using System.Drawing;

namespace lesoon10
{
    class sample3 : Form
    {
        private TextBox tb;
        private WebBrowser wb;
        private ToolStrip ts;
        private ToolStripButton[] tsb = new ToolStripButton[2];

        [STAThread]
        static void Main(string[] args)
        {
            Application.Run(new sample3());
        }
        public sample3()
        {
            this.Text = "lesson10"; this.Width = 600;this.Height = 400;
            tb = new TextBox();tb.Text = "http://";tb.Dock = DockStyle.Top;

            wb = new WebBrowser(); wb.Dock = DockStyle.Fill; //Webブラウザコントロールを作成します
            
            ts = new ToolStrip();ts.Dock = DockStyle.Top;

            for (int i = 0; i < tsb.Length; i++)
            {
                tsb[i] = new ToolStripButton();
            }
            tsb[0].Text = "Go";tsb[0].ToolTipText = "移動";
            tsb[1].Text = "←";tsb[1].ToolTipText = "戻る";tsb[1].Enabled = false;

            for (int i = 0; i < tsb.Length; i++)
            {
                ts.Items.Add(tsb[i]);
            }

            tb.Parent = this; wb.Parent = this;ts.Parent = this;

            for (int i = 0; i < tsb.Length; i++)
            {
                tsb[i].Click += new EventHandler(bt_Click);
            }

            wb.CanGoBackChanged += new EventHandler(wb_CanGoBackChanged);
        }
        public void bt_Click(object sender, EventArgs e)
        {
            if (sender == tsb[0])
            {
                try
                {
                    Uri uri = new Uri(tb.Text);
                    wb.Url = uri;//①指定URIのページを開きます
                }
                catch
                {
                    MessageBox.Show("URLを入力してください");
                }
            }
            else if (sender == tsb[1])
            {
                wb.GoBack();//②戻る処理を行います
            }
        }
        //「戻る」履歴が変更されたら...
        public void wb_CanGoBackChanged(object sender, EventArgs e)
        {
            tsb[1].Enabled = wb.CanGoBack;//③ボタンの有効無効を「戻る」可否と合わせます
        }

    }
}
実行画面

  ツールバーの「Go(移動)」ボタンを押すとUriクラスのオブジェクトを作成し、WebブラウザコントロールのURLプロパティに指定URLを設定します。すると、指定したURLのページが表示されます。
  なお、このコードでは「←(戻る)」ボタンを用意して、前のページに「戻る」処理を行います。この場合、前ページに閲覧履歴が存在し、「戻る」ことができる場合にだけ、ボタンを有効にする必要があります。
  そこで「戻る」履歴が変化した場合に発生するCanGoBackChangedイベントを処理します。このイベントハンドラ内で、ボタンの有効無効を、WebブラウザコントロールのCanGoBackプロパティの値に設定することにします(③)。これによって、「戻る」ことができる場合にだけ「 ←(戻る) 」ボタンを有効になります。

Webページをフォーム上に表示することができる。

コメント

タイトルとURLをコピーしました