C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

ツリー一括表示

comboBoxの使い方 /ぼんち (19/12/25(Wed) 13:19) #93602
Re[1]: comboBoxの使い方 /Hongliang (19/12/25(Wed) 14:13) #93603
  └ Re[2]: comboBoxの使い方 /ぼんち (19/12/25(Wed) 15:08) #93605 解決済み


親記事 / ▼[ 93603 ]
■93602 / 親階層)  comboBoxの使い方
□投稿者/ ぼんち (1回)-(2019/12/25(Wed) 13:19:33)

分類:[C#] 

例えばcomboBoxのItemsにA、B、C・・・と記入していたとして
Aのときは「値1」、Bのときは「値2」など20,30項目ある時にはどうすればいいでしょうか?
Itemsが1,2個のときはSelectedIndexを使ってインデックスが0のときは「値1」の処理をしていましたが
数が増えたらfor文かforeach文を使用すると思うのですがどうすればいいでしょうか?
よろしくお願いします。
[ □ Tree ] 返信 編集キー/

▲[ 93602 ] / ▼[ 93605 ]
■93603 / 1階層)  Re[1]: comboBoxの使い方
□投稿者/ Hongliang (945回)-(2019/12/25(Wed) 14:13:46)
Windows Formsアプリであるという前提で。
データソースを使ってみるとか。

// データを格納するクラス
class Person {
    public string Name { get; set; }
    public string FullName { get; set; }
}

// コンボボックスの初期化
var people = new List<Person>() {
    new Person() { Name = "太郎", FullName = "田中太郎" },
    new Person() { Name = "次郎", FullName = "斎藤次郎" },
    new Person() { Name = "三郎", FullName = "鈴木三郎" },
};
comboBox1.DataSource = people;
comboBox1.DisplayMember = "Name";
comboBox1.ValueMember = "FullName";
// comboBox1.ItemsにAddしていく必要はない

// コンボボックスの値を取得する
if (comboBox1.SeletedIndex != -1) {
    string fullName = (string)comboBox1.SelectedValue;
    Person person = (Person)comboBox1.SelectedItem;
}

[ 親 93602 / □ Tree ] 返信 編集キー/

▲[ 93603 ] / 返信無し
■93605 / 2階層)  Re[2]: comboBoxの使い方
□投稿者/ ぼんち (2回)-(2019/12/25(Wed) 15:08:55)
No93603 (Hongliang さん) に返信
なるほど!Listクラスを使えばいいのですね。
ありがとうございました。
解決済み
[ 親 93602 / □ Tree ] 返信 編集キー/


管理者用

- Child Tree -