[C#][VB.NET] ComboBox 新增 Item 時具有 Text 與 Value
一、問題描述
在 Windows Forms 的 ComboBox 新增 Item 時具有 Text 與 Value 是一個常見的問題,因此將這問題寫在Blog中,給有此問題的做參考
小提示 : 在 Web Form 中有 ListItem 可以同時新增 Text 與 Value,可以參考
MSDN : ListItem 類別
藍色小舖發問 : DropDownList 的值
二、方法
1. 使用 DataTable
VB.NET Code
Dim list As New DataTable()
list.Columns.Add(New DataColumn("Display", System.Type.GetType("System.String")))
list.Columns.Add(New DataColumn("Id", System.Type.GetType("System.Int32")))
list.Rows.Add(list.NewRow())
list.Rows.Add(list.NewRow())
list.Rows.Add(list.NewRow())
list.Rows(0)(0) = "one"
list.Rows(0)(1) = 1
list.Rows(1)(0) = "two"
list.Rows(1)(1) = 2
list.Rows(2)(0) = "three"
list.Rows(2)(1) = 3
ComboBox1.DataSource = list
ComboBox1.DisplayMember = "Display"
ComboBox1.ValueMember = "Id"
C# Code
DataTable list = new DataTable();
list.Columns.Add(new DataColumn("Display", typeof(string)));
list.Columns.Add(new DataColumn("Id", typeof(int)));
list.Rows.Add(list.NewRow());
list.Rows.Add(list.NewRow());
list.Rows.Add(list.NewRow());
list.Rows[0][0] = "one";
list.Rows[0][1] = 1;
list.Rows[1][0] = "two";
list.Rows[1][1] = 2;
list.Rows[2][0] = "three";
list.Rows[2][1] = 3;
comboBox1.DataSource = list;
comboBox1.DisplayMember = "Display";
comboBox1.ValueMember = "Id";
2. 自訂一個類似 ListItem 的類別來使用,可以參考
藍色小舖發問 : combobox可同時新增文字及Value的值嗎? 達可達前輩的回應