はじめに
SelectedItem プロパティは、ComboBoxで現在選択されている項目そのものを取得・設定するためのプロパティです。
文字列やオブジェクトを直接扱えるため、より直感的に選択状態を操作できます。
SelectedItemプロパティとは?
SelectedItem は、コンボボックス内で現在選択されている項目(オブジェクト)を表します。
選択がない場合は null が返されます。
💡 ポイント:
「何が選ばれているか」をそのまま取得できるのが特徴です。
SelectedItem は SelectedIndex よりも実用的で、「何が選ばれているか」をそのまま取得できるのが特徴です。
基本的な使い方
現在の選択項目を取得する
object item = comboBox1.SelectedItem;
MessageBox.Show($"現在の選択項目: {item}");
特定の項目を選択する
comboBox1.SelectedItem = "C#"; // "C#" がリスト内にあれば選択される
選択を解除する
comboBox1.SelectedItem = null; // 選択を解除
実用例:選択内容をラベルに表示する
using System;
using System.Windows.Forms;
namespace ComboBoxSelectedItemSample
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
comboBox1.Items.AddRange(new string[] { "Python", "C#", "Java", "JavaScript" });
comboBox1.SelectedItem = "C#"; // 初期選択
comboBox1.SelectedIndexChanged += comboBox1_SelectedIndexChanged;
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
label1.Text = $"現在選択中: {comboBox1.SelectedItem}";
}
}
}
この例では、ComboBoxで項目を選ぶとその内容がラベルに表示されます。
項目名をそのまま使う場合は、SelectedItem が最もシンプルです。
SelectedIndexとの違い
| プロパティ | 内容 | 型 | 選択がない場合 |
|---|---|---|---|
SelectedIndex |
選択位置を数値で返す(0始まり) | int |
-1 |
SelectedItem |
選択項目そのもの(オブジェクト)を返す | object |
null |
🟦 補足:
SelectedItem はユーザーが実際に見ている「値」に近く、SelectedIndex は内部処理や制御に向いています。
オブジェクトリストを扱う場合
Items にオブジェクトを追加すると、SelectedItem でそのオブジェクトを直接取得できます。
ただし、表示される文字列はそのオブジェクトの ToString() の結果になります。
public class City
{
public int Id { get; set; }
public string Name { get; set; }
public override string ToString() => Name;
}
// --- 使用例 ---
comboBox1.Items.AddRange(new City[]
{
new City { Id = 1, Name = "東京" },
new City { Id = 2, Name = "大阪" },
new City { Id = 3, Name = "福岡" }
});
// "大阪" を選択する
comboBox1.SelectedItem = comboBox1.Items[1];
// 選択されたオブジェクトを取得
City selectedCity = (City)comboBox1.SelectedItem;
MessageBox.Show($"選択された都市: {selectedCity.Name}(ID={selectedCity.Id})");
このように、オブジェクトを直接扱うことで、
表示名と内部データを簡単に紐づけることができます。
注意点
SelectedItemで設定する値は、Itemsコレクション内に存在している必要があります。- 該当する項目が見つからない場合、選択は変更されません。
DataSourceを使用している場合は、SelectedValueの方が一般的です。
まとめ
SelectedItemは、現在選択されている項目そのものを取得・設定するプロパティ- オブジェクトを直接扱うことができ、
ToString()の結果が表示に使われる SelectedIndexよりも「値を扱う」目的に向いている- データバインドを使う場合は、
SelectedValueと組み合わせるのが便利
Please follow and like us:
コメント