この章では、テキストボックスと2つのボタンを持つフォームを作ってみます。
テキストボックスや、ボタンは機能ごとに独自のクラスを作るようにしてみます。
一つのボタンは、テキストボックスに表示されている文字列をメッセージボックスで表示します。もう一つのボタンは、テキストボックスをクリアします。
テキストボックスをクリアするには、Textプロパティを「""」に設定してもよいのですが、TextBoxBase.Clearメソッドを使っても同じ事ができます。
public void Clear ()また、Control.Focusメソッドで、そのコントロールにフォーカスを設定することができます。
では、サンプルを見てみましょう。
// textbox02.cs
using System;
using System.Drawing;
using System.Windows.Forms;
class textbox02
{
public static void Main()
{
MyForm mf = new MyForm();
Point pt1 = new Point(10, 10);
MyTextBox mt = new MyTextBox(mf, pt1);
Point pt2 = new Point(10, 20 + mt.Height);
MyButton mb = new MyButton(mf, mt, pt2);
Point pt3 = new Point(20 + mb.Width, 20 + mt.Height);
MyClearButton mc = new MyClearButton(mf, mt, pt3);
Size sz = new Size(30 + mb.Width + mc.Width, 30 + mt.Height + mb.Height);
mf.ClientSize = sz;
mf.FormBorderStyle = FormBorderStyle.FixedSingle;
mf.MaximizeBox = false;
mf.MinimizeBox = false;
Application.Run(mf);
}
}
class MyTextBox : TextBox
{
public MyTextBox(Form parent, Point pt)
{
Parent = parent;
Location = pt;
}
}
class MyButton : Button
{
TextBox txtbox;
public MyButton(Form parent, TextBox tb, Point pt)
{
txtbox = tb;
Parent = parent;
Location = pt;
Text = "押す";
BackColor = SystemColors.Control;
}
protected override void OnClick(EventArgs e)
{
base.OnClick(e);
MessageBox.Show(txtbox.Text, "猫C#",
MessageBoxButtons.OK,
MessageBoxIcon.Information);
txtbox.Focus();
}
}
class MyClearButton : Button
{
TextBox txtbox;
public MyClearButton(Form p, TextBox t, Point pt)
{
Parent = p;
txtbox = t;
Location = pt;
BackColor = SystemColors.Control;
Text = "消す";
}
protected override void OnClick(EventArgs e)
{
base.OnClick(e);
txtbox.Clear();
txtbox.Focus();
}
}
class MyForm : Form
{
public MyForm()
{
Text = "猫でもわかるC#プログラミング";
BackColor = SystemColors.Window;
}
}
では、実行結果を見てみましょう。
「押す」ボタンを押すと、テキストボックスの内容が、メッセージボックスで表示されます。
「消す」ボタンを押すとテキストボックスの内容がクリアされます。
Update 13/Nov/2006 By Y.Kumei