【やさしいC#】lesson7.4 テキストボックスとリストボックス

C#

テキストボックスの仕組みを知る

  テキストボックス(TextBox)と言うコンポーネントを使ってみることにしましょう。
  これまでにも文字列を表示するコントロールである、ラベルを使ったことを思い出してください。テキストボックスを使えば、テキストを表示するばかりでなく、ユーザからの入力を受け付けることもできるようになります。

using System;
using System.Windows.Forms;
using System.Drawing;

namespace lesson7
{
    class sample8 : Form
    {
        private Label lb;
        private TextBox tb;
        static void Main(string[] args)
        {
            Application.Run(new sample8());
        }
        public sample8()
        {
            this.Text = "lesson7";
            this.Width = 300; this.Height = 200;

            lb= new Label();
            lb.Text = "いらっしゃいませ";
            lb.Dock = DockStyle.Top;

            tb = new TextBox();
            tb.Dock = DockStyle.Bottom;

            lb.Parent = this;
            tb.Parent = this;

            tb.KeyDown += new KeyEventHandler(tb_KeyDown);
        }
        public void tb_KeyDown(Object sender, KeyEventArgs e)
        {
            TextBox tmp = (TextBox)sender;
            if(e.KeyCode == Keys.Enter)
            { 
                lb.Text = tmp.Text + "を選びました";
            }
        }
    }
}

→Enterキーを押下 

テキストを入力したあと、Enterキーをもう一回押すと、その内容がラベルに設定されます。Enterキーの押し下げを調べているため、KeyDownイベントを処理しています。

リストボックスの仕組みを知る

  リストボックス(ListBox)は、複数項目の中からある項目を選ぶというコントロールです。

using System;
using System.Windows.Forms;
using System.Drawing;

namespace lesson7
{
    class sample9 : Form
    {
        private Label lb;
        private ListBox lbx;
        static void Main(string[] args)
        {
            Application.Run(new sample9());
        }
        public sample9()
        {
            string[] str = {"乗用車","トラック","オープンカー",
                            "タクシー","スポーツカー","ミニカー",
                            "自転車","三輪車","バイク",
                            "飛行機","ヘリコプター","ロケット",};
            this.Text = "lesson7";
            this.Width = 300; this.Height = 200;

            lb= new Label();
            lb.Text = "いらっしゃいませ";
            lb.Dock = DockStyle.Top;

            lbx = new ListBox();
            for (int i = 0; i < str.Length; i++)
            {
                lbx.Items.Add(str[i]);
            }
            lbx.Top = lb.Bottom;

            lb.Parent = this;
            lbx.Parent = this;

            lbx.SelectedIndexChanged += new EventHandler(lbx_SelectedIndexChanged);
        }
        public void lbx_SelectedIndexChanged(Object sender, EventArgs e)
        {
            ListBox tmp = (ListBox)sender;
            lb.Text = tmp.Text + "を選びました";
        }
    }
}

  このサンプルでは、リストボックスの項目を選択したときに、その名前がラベルに表示されるようになってます。
  ここではリストボックスのSelectedIndexChangedイベントを処理しています。このイベントを処理するイベントハンドラEventHandler(Object sender, EventArgs e)をによって登録することで、リスト項目を選択したときに処理を行うプログラムを作成できるのです。

クラス説明
System.Windows.Forms.ListBoxクラス
ListBox()コンストラクタリストボックスを作成する
Itemsプロパティリストボックスのアイテムを取得する
SelectedIndexChangedイベントリストの選択が変更されるイベント
System.Windows.Forms.ListBox.ObjectCollectionクラス
int Add(Object item)メソッドアイテムを追加する

コンボボックス

リストボックスに似たコントロールとして、コンボボックス(ComboBox)があります。コンボボックスはリストと同じ使い方ができますが、表示されるのは1行のみとなっており、その他の項目は右端をクリックしたときにドロップダウンされます

コメント

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