C#における、コンボボックスの使い方について紹介していきます。

コンボボックスはよく使うコントロールなので、是非覚えておきましょう。

コンボボックス 基本的な使い方

コンボボックスの配置

ツールボックスから、ComboBoxを選択し画面に「ドラッグ&ドロップ」で配置しましょう。

 

コンボボックス 要素の追加

まずは、最も基本となるコンボボックスの要素の追加方法を見ていきましょう。

コンボボックスの要素を追加する方法は、下記のようになります。

comboBox.Items.Add("要素名");

 

例として、「りんご」「みかん」「ぶどう」の要素を持った、コンボボックスを作成してみましょう。

comboBox1.Items.Add("");
comboBox1.Items.Add("りんご");
comboBox1.Items.Add("みかん");
comboBox1.Items.Add("ぶどう");

結果

この時、1行目の

comboBox1.Items.Add("");

で空の要素を追加することができます。

 

インデックス番号の取得

コンボボックスの要素を選択するときに、インデックス番号で値を選ぶ方法を紹介していきます。

comboBox.SelectedIndex = 要素番号;

このように記載することで、コンボボックスの値を選択できます。

 

それでは、先ほど作成したコンボボックスから「みかん」を選択してみましょう。

comboBox1.SelectedIndex = 2;

結果

インデックスは、0から始まるので、
0:空
1:りんご
2:みかん
3:ぶどう

となりますので、「みかん」を表示させたいときは、2を指定しましょう。

 

また、現在選択している、インデックスを取得することもできます。

int index = comboBox.SelectedIndex;

変数indexに現在のインデックスを格納することができます。

 

要素 全削除

コンボボックスの要素を一括で削除する方法です。

comboBox.Items.Clear();

初期化したい時など使用します。

 

指定した要素を削除

コンボボックスのインデックスを指定して削除する方法です。

comboBox.Items.RemoveAt(要素番号);

例として、要素1つ目を削除する場合は、このようになります。

comboBox1.Items.RemoveAt(1);

 

DataTableの値を要素に追加

データテーブルの値を、コンボボックスに反映する方法を紹介します。

comboBox2.DataSource = datatable;
comboBox2.DisplayMember = "データテーブルの項目名";
comboBox2.ValueMember = "データテーブルの項目名";

例を見ていきましょう。

DataTable dt = new DataTable();
DataRow dr;
dt.Columns.Add("animalId");
dt.Columns.Add("animalNm");

dr = dt.NewRow();
dr["animalId"] = "0001";
dr["animalNm"] = "きりん";
dt.Rows.Add(dr);

dr = dt.NewRow();
dr["animalId"] = "0002";
dr["animalNm"] = "ぞう";
dt.Rows.Add(dr);

dr = dt.NewRow();
dr["animalId"] = "0003";
dr["animalNm"] = "いぬ";
dt.Rows.Add(dr);

comboBox2.DataSource = dt;
comboBox2.DisplayMember = "animalNm";
comboBox2.ValueMember = "animalId";

comboBox2.SelectedValue = "0001";

解説
1行目~20行目:データテーブルの作成
21行目:DataSourceでデータテーブルの値を取込む
22行目:画面に表示する項目を設定
23行目:リンクさせるための値を設定
25行目:コンボボックスの値を選択

結果

右のコンボボックスに値が追加されています。

データテーブルの値をコンボボックスに表示することができました。

また、SelectedValueでコンボボックスの内容を選択できます。

ValueMemberで指定した項目で選択するようにしましょう。

 

特に、SQLServerに登録されているデータをデータテーブルに格納し、

そのデータテーブルをコンボボックスに表示するパターンがよくあるので、しっかり押さえておきましょう。

 

サンプルソース

サンプルソースを載せておきます。

using System;
using System.Data;
using System.Windows.Forms;

namespace c_sharp
{
    public partial class frmComboBox : Form
    {
        public frmComboBox()
        {
            InitializeComponent();
        }

        private void frmComboBox_Load(object sender, EventArgs e)
        {
            //左のコンボボックス
            comboBox1.Items.Add("");
            comboBox1.Items.Add("りんご");
            comboBox1.Items.Add("みかん");
            comboBox1.Items.Add("ぶどう");

            comboBox1.SelectedIndex = 2;

            //右のコンボボックス
            //データテーブル作成
            DataTable dt = new DataTable();
            DataRow dr;
            dt.Columns.Add("animalId");
            dt.Columns.Add("animalNm");

            dr = dt.NewRow();
            dr["animalId"] = "0001";
            dr["animalNm"] = "きりん";
            dt.Rows.Add(dr);

            dr = dt.NewRow();
            dr["animalId"] = "0002";
            dr["animalNm"] = "ぞう";
            dt.Rows.Add(dr);

            dr = dt.NewRow();
            dr["animalId"] = "0003";
            dr["animalNm"] = "いぬ";
            dt.Rows.Add(dr);

            //コンボボックス作成
            comboBox2.DataSource = dt;
            comboBox2.DisplayMember = "animalNm";
            comboBox2.ValueMember = "animalId";

            //値選択
            comboBox2.SelectedValue = "0001";

        }
    }
}

 

まとめ

今回は、コンボボックスの使い方について紹介しました。
特に、DataTableの連携は覚えておくと便利なので、是非参考にしてみてください。

 

C#の記事一覧

おすすめの記事