Share via


HOW TO:為 Windows Form 的 ComboBox、ListBox 或 CheckedListBox 控制項建立查閱資料表

更新:2007 年 11 月

在 Windows Form 上以方便使用的格式來顯示資料,但以對程式更有意義的格式來存放資料,這樣的做法有時候相當實用。例如,食品的訂單表單可能會在清單方塊中依名稱來顯示功能表項目。但是,記錄訂單的資料表 (Data Table) 則會包含代表食品的唯一 ID 編號。下表將顯示如何存放並顯示食品訂單表單資料的範例。

OrderDetailsTable

OrderID

ItemID

Quantity

4085

12

1

4086

13

3

ItemTable

ID

Name

12

Potato

13

Chicken

在這個案例中,其中一個資料表 OrderDetailsTable 會儲存與顯示和儲存有關的實質資訊。但為節省空間,它是以密碼方式來設計的。另一個資料表 ItemTable 則只包含與外觀相關的資訊,也就是哪個 ID 編號等於哪個食物名稱,這與實質食品訂單毫無關係。

ItemTable 可透過三個屬性連接至 ComboBoxListBoxCheckedListBox 控制項。 DataSource 屬性包含這個資料表的名稱。 DisplayMember 屬性包含要顯示在控制項 (食品名稱) 中的該資料表的資料行。 ValueMember 屬性包含該資料表中具有儲存資訊 (ID 編號) 的資料行。

OrderDetailsTable 是由它的繫結集合 (透過 DataBindings 屬性存取) 連接到控制項。當您將繫結物件加入集合時,便是將控制項屬性連接到資料來源 (OrderDetailsTable) 中的特定資料成員 (ID 編號的資料行)。當在控制項中選取範圍時,這個資料表就是儲存表單輸入之處。

若要建立查閱資料表

  1. ComboBoxListBoxCheckedListBox 控制項加入至表單。

  2. 連接到您的資料來源。

  3. 在兩個資料表之間建立資料關聯。

  4. 設定下列屬性。您可以在程式碼或設計工具中設定這些屬性。

    屬性

    設定

    DataSource

    資料表,其中包含哪個 ID 編號對應於哪個項目的相關資訊。在前一個案例中就是 ItemTable。

    DisplayMember

    想要在控制項中顯示的資料來源資料表之資料行。在前一個案例中就是 "Name" (在程式碼中設定時需要使用引號)。

    ValueMember

    包含儲存資訊的資料來源資料表之資料行。在前一個案例中就是 "ID" (在程式碼中設定時需要使用引號)。

  5. 在程序中,呼叫 ControlBindingsCollection 類別的 Add 方法,藉此將控制項的 SelectedValue 屬性繫結至記錄表單輸入的資料表。您也可以在 [屬性] 視窗中存取控制項的 DataBindings 屬性,即可在設計工具中執行這項工作,而不是在程式碼中。在前一個案例中就是 OrderDetailsTable,且資料行是 "ItemID"。

    ListBox1.DataBindings.Add("SelectedValue", OrderDetailsTable, "ItemID")
    
    listBox1.DataBindings.Add("SelectedValue", OrderDetailsTable, "ItemID");
    
    listBox1.get_DataBindings().Add("SelectedValue", OrderDetailsTable, "ItemID");
    

請參閱

概念

資料繫結和 Windows Form

參考

ListBox 控制項概觀 (Windows Form)

ComboBox 控制項概觀 (Windows Form)

CheckedListBox 控制項概觀 (Windows Form)

其他資源

用來列出選項的 Windows Form 控制項