テキストボックスや、ボタンは機能ごとに独自のクラスを作るようにしてみます。
一つのボタンは、テキストボックスに表示されている文字列をメッセージボックスで表示します。もう一つのボタンは、テキストボックスをクリアします。
テキストボックスをクリアするには、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