SQLの窓 イラストAC フリー素材

2017年10月29日

ComboBox : C# : Form アプリケーションで良く使うコントロール / VS2012 にて



コンンボボックス の注意事項



最も簡単な、テキストのみをコンボボックスに保存する方法。取り出すデータもテキストになるので、コード化された仕様を元に利用するのには向いていません。しかし、手っ取り早く表示するのは簡単です。

テキストのみであれば、プロパティより入力可能。



コンボボックス(ComboBox) という名前のクラスですが、デフォルトでは入力可能になってしまうので、一般的なコンボボックスとして使用したい場合は、プロパティで『DropDownList』に変更しておく必要があります。



初期状態で未選択にしてテキストを表示させないようにするには、comboBox1.SelectedIndex = -1; を実行します。

▼ 自動作成されるコード
			// 
			// comboBox1
			// 
			this.comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
			this.comboBox1.FormattingEnabled = true;
			this.comboBox1.Items.AddRange(new object[] {
            "男",
            "女"});
			this.comboBox1.Location = new System.Drawing.Point(51, 41);
			this.comboBox1.Name = "comboBox1";
			this.comboBox1.Size = new System.Drawing.Size(239, 20);
			this.comboBox1.TabIndex = 0;


ここでは、AddRange が使用されていますが、一般的なコードとテキストを登録したい場合は以下のようなクラスを作成して、comboBox1.Items.Add( オブジェクト ) とします。
        // ******************************
        // コンボボックスに追加情報
        // をセットする為のクラス
        // ******************************
        private class ComboData {

            public ComboData(string Text, string Data) {
                this.Text = Text;
                this.Data = Data;
            }

            public string Text { get; set; }
            public string Data { get; set; }

            public override string ToString() {
                return this.Text;
            }
        }

コンボボックスの選択が変更された場合は、SelectedIndexChanged イベントが実行されるので、以下のようにして Add されたオブジェクトの内容を取り出します
		private void Form1_Load(object sender, EventArgs e) {

			// ComboData を コンボボックスにセット
			comboBox1.Items.Clear();
			comboBox1.Items.Add(new ComboData("昨日", "0001"));
			comboBox1.Items.Add(new ComboData("今日", "0002"));
			comboBox1.Items.Add(new ComboData("明日", "0003"));

		}

		private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) {

			ComboBox cb = (ComboBox)sender;

			// コンボボックスのテキスト
			Console.WriteLine(cb.Text);
			// コンボボックスの選択インデックス
			int idx = cb.SelectedIndex;
			Console.WriteLine(idx);

			// 選択されていた場合は、Items コレクションでテキストとデータを表示
			if (idx != -1) {
				ComboData cdata = (ComboData)cb.Items[idx];

				Console.WriteLine(cdata.Text);
				Console.WriteLine(cdata.Data);
			}
		}



タグ:Combobox C#
【C#の最新記事】
posted by at 2017-10-29 17:07 | Comment(0) | C# | このブログの読者になる | 更新情報をチェックする
SQLの窓全体の検索
Custom Search
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。


Android SDK ポケットリファレンス
改訂版 Webデザイナーのための jQuery入門
今すぐ使えるかんたん ホームページ HTML&CSS入門
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX