[C#][VB.NET] ComboBox 新增 Item 時具有 Text 與 Value

  • 127049
  • 0
  • 2010-08-02

[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的值嗎? 達可達前輩的回應