[C#][Windows Formsアプリ][ComboBox] SelectedItemプロパティで現在選択されている項目を直接取得・設定する

スポンサーリンク

はじめに

SelectedItem プロパティは、ComboBoxで現在選択されている項目そのものを取得・設定するためのプロパティです。
文字列やオブジェクトを直接扱えるため、より直感的に選択状態を操作できます。

 

SelectedItemプロパティとは?

SelectedItem は、コンボボックス内で現在選択されている項目(オブジェクト)を表します。
選択がない場合は null が返されます。

💡 ポイント:
SelectedItemSelectedIndex よりも実用的で、
「何が選ばれているか」をそのまま取得できるのが特徴です。

 

基本的な使い方

現在の選択項目を取得する

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:

コメント

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