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ページをフォーム上に表示することができる。

コメント