はじめに
SelectedValue プロパティは、ComboBoxにデータバインドを行ったとき、
現在選択されている項目の「値(ValueMemberに対応)」を取得または設定できるプロパティです。
データベースやオブジェクトのIDを扱う場面で頻繁に使用されます。
SelectedValueプロパティとは?
SelectedValue は、DisplayMember と ValueMember を設定したときに
「表示されているテキスト」とは別に「内部で保持する値」を取得・設定するためのプロパティです。
💡 ポイント:
ユーザーが「東京」を選んだとき、
という形で「表示用」と「値用」を分けて管理できます。
ユーザーが「東京」を選んだとき、
DisplayMember = "Name"(=東京)ValueMember = "Id"(=1)という形で「表示用」と「値用」を分けて管理できます。
基本構文
// 値を取得
var id = comboBox1.SelectedValue;
// 値を設定
comboBox1.SelectedValue = 2;
設定した値が ValueMember に一致する項目が存在する場合、
その項目が自動的に選択状態になります。
使用例:データバインドでIDと名前を分けて管理
using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace ComboBoxSelectedValueSample
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
var cities = new List<City>
{
new City { Id = 1, Name = "東京" },
new City { Id = 2, Name = "大阪" },
new City { Id = 3, Name = "名古屋" },
new City { Id = 4, Name = "福岡" }
};
comboBox1.DataSource = cities;
comboBox1.DisplayMember = "Name"; // 表示するプロパティ
comboBox1.ValueMember = "Id"; // 値として扱うプロパティ
comboBox1.SelectedValue = 2; // 「大阪」を選択
}
private void buttonShowValue_Click(object sender, EventArgs e)
{
int selectedId = (int)comboBox1.SelectedValue;
string selectedName = comboBox1.Text;
MessageBox.Show($"選択された都市: {selectedName}(ID={selectedId})");
}
}
public class City
{
public int Id { get; set; }
public string Name { get; set; }
}
}
この例では、コンボボックスの表示は「Name」、
内部的な値は「Id」で管理しています。
選択された都市のIDを SelectedValue から直接取得できます。
DisplayMember・ValueMember・SelectedValueの関係
| プロパティ | 内容 | 例 |
|---|---|---|
DisplayMember |
画面に表示するプロパティ | “東京” |
ValueMember |
内部的に扱う値 | 1 |
SelectedValue |
選択された項目の ValueMember に対応する値 |
1 |
🟩 例:
ユーザーが「大阪」を選択 →
ユーザーが「大阪」を選択 →
comboBox1.Text は “大阪”comboBox1.SelectedValue は 2。
SelectedValueを使った選択制御
特定のIDを選択する
comboBox1.SelectedValue = 3; // 「名古屋」を選択
現在のIDを取得する
int id = (int)comboBox1.SelectedValue;
選択を解除する
comboBox1.SelectedIndex = -1; // または DataSource を再設定
注意点
SelectedValueはValueMemberが設定されていないと機能しません。Items.Add()で項目を追加した場合には使用できません(DataSource専用)。- 値の型(int / string など)が一致しないと選択されません。
- データバインドを変更した場合、
SelectedValueの再設定が必要になることがあります。
応用例:データベースIDで項目を選択
// 例:前回選択したIDを再設定する
int lastSelectedId = 4;
comboBox1.SelectedValue = lastSelectedId;
ユーザーが前回選んだ値を保存しておき、次回起動時に再現するようなケースでも
SelectedValue が役立ちます。
8. まとめ
SelectedValueはデータバインド時に内部値(IDなど)を取得・設定できるプロパティDisplayMemberとValueMemberをセットで使用する- 型の一致とバインドの順序に注意
- データベース連携やオブジェクト管理で特に有用
Please follow and like us:

コメント