C#のWindowsフォームアプリケーションで、ユーザーに選択肢を提示する方法の一つに「コンボボックス(ComboBox)」があります。ドロップダウンリストで項目を選ばせるこのコントロールは、見た目もすっきりしており、使い方をマスターすればユーザーインターフェースを格段に向上させることができます。この記事では、コンボボックスの基本的な使い方から、データバインド、選択イベントの処理、応用テクニックまでを初心者にも分かりやすく丁寧に解説していきます。
コンボボックスとは?
コンボボックス(ComboBox)は、ドロップダウン形式で項目を選択できるUI部品です。ユーザーはテキストを直接入力することも可能ですし、用意された選択肢から選ぶこともできます。
C#では、Windowsフォーム(WinForms)アプリケーションで System.Windows.Forms.ComboBox
クラスとして提供されており、ツールボックスからドラッグ&ドロップで配置することができます。
コンボボックスの基本的な追加方法
デザイナーから追加する場合
- Visual Studioを起動
- 新しいWindowsフォームアプリケーションプロジェクトを作成
- フォームにツールボックスから「ComboBox」をドラッグ&ドロップ
- プロパティウィンドウでNameを「comboBox1」などに設定
コードから追加する場合
ComboBox comboBox1 = new ComboBox();
comboBox1.Location = new Point(10, 10);
comboBox1.Size = new Size(150, 25);
this.Controls.Add(comboBox1);
項目の追加方法(Itemsの追加)
コードから項目を追加する
comboBox1.Items.Add("りんご");
comboBox1.Items.Add("バナナ");
comboBox1.Items.Add("オレンジ");
配列やリストから一括追加
string[] fruits = { "りんご", "バナナ", "オレンジ" };
comboBox1.Items.AddRange(fruits);
選択された項目の取得方法
ユーザーがコンボボックスから選んだ項目を取得するには、SelectedItem
や SelectedIndex
を使います。
string selectedItem = comboBox1.SelectedItem.ToString();
int selectedIndex = comboBox1.SelectedIndex;
よくあるnull例外への対策
if (comboBox1.SelectedItem != null)
{
string selected = comboBox1.SelectedItem.ToString();
MessageBox.Show($"選択された項目: {selected}");
}
選択変更イベントの処理
選択肢が変更されたときに処理を行いたい場合は、SelectedIndexChanged
イベントを使います。
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
MessageBox.Show("選択が変更されました:" + comboBox1.SelectedItem);
}
イベントの登録
comboBox1.SelectedIndexChanged += new EventHandler(comboBox1_SelectedIndexChanged);
コンボボックスにデータをバインドする
データベースや外部データを直接バインドすることもできます。
リストをバインドする例
List<string> cities = new List<string> { "東京", "大阪", "名古屋" };
comboBox1.DataSource = cities;
オブジェクトのリストをバインドする
public class Person
{
public string Name { get; set; }
public int ID { get; set; }
}
List<Person> people = new List<Person>
{
new Person { Name = "山田", ID = 1 },
new Person { Name = "田中", ID = 2 }
};
comboBox1.DataSource = people;
comboBox1.DisplayMember = "Name";
comboBox1.ValueMember = "ID";
入力を禁止して選択肢のみ許可する方法
デフォルトでは、ユーザーはコンボボックスに自由に文字を入力できますが、選択肢のみ選ばせたい場合は DropDownStyle
プロパティを設定します。
comboBox1.DropDownStyle = ComboBoxStyle.DropDownList;
選択肢の初期選択を設定する
comboBox1.SelectedIndex = 0; // 最初の項目を選択
または、特定の値を直接選択させる場合:
comboBox1.SelectedItem = "大阪";
コンボボックスの見た目や動作をカスタマイズする
- 最大表示数の設定(MaxDropDownItems) csharpコピーする編集する
comboBox1.MaxDropDownItems = 5;
- ソートする
comboBox1.Sorted = true;
- ツールチップを追加
ToolTip tip = new ToolTip(); tip.SetToolTip(comboBox1, "選択してください");
まとめ
C#のコンボボックスは、単なるUI部品以上に多彩な機能を持っています。静的な項目の表示から、データベースとの連携による動的な表示まで対応でき、ユーザーインターフェースの品質を大きく向上させることができます。初歩的な使い方をマスターしたら、次はイベント処理やデータバインディングを活用して、より実践的なアプリケーションへと発展させていきましょう。