可以提供選項列表的控件有ListBox、ComboBox、CheckedListBox,如何正確的使用和選擇這些控件,下面對此進行討論。首先對這三種控件的功能分別進行說明:
ListBox用於顯示項列表,用戶可以從中選擇一項或多項。如果項目總數超出可以顯式的項目數,則ListBox會自動添加滾動條。當MultiColumn屬性為true時,列表框以多列形式顯示條目,並且會出現一個水平滾動條。當MultiColumn為false時,列表框以單列形式顯示條目,並且會出現一個垂直滾動條。當ScrollAlwaysVisible為true時,無論條目多少都會顯示滾動條。SelectionMode屬性用於設置一次可以選擇多少條目。
SelectedIndex屬性返回列表框中第一個被選條目對應的整數。通過在代碼中更改SelectedIndex值,可以更改選定項;而被選擇的條目在窗口上突出顯示。如果未選擇任何項,則SelectedIndex的值為-1,如果選擇的是第一項,則SelectedIndex值為0。當選擇多項,SelectedIndex值表示第一個被選擇的條目。
SelectedItem屬性類似於SelectedIndex,不過它代表條目本身,通常為字符串。
Count屬性表示列表中項目數,由於SelectedIndex是從零開始的,所以Count屬性的值通常比SelectedIndex的最大可能值大1.
添加或刪除條目:Add、Insert、Clear或Remove。也可以在開始使用Items屬性向列表中添加項。
重點:判斷選擇的條目,設置滾動條,添加刪除條目。
ComboBox控件以下拉框的方式顯示數據。ComboBox默認分兩部分顯示:頂部是一個允許用戶鍵入列表項的文本框;下面是一個列表框,它顯示一個項列表。
SelectedIndex,Count, SelectedItem, Add, Remove, Insert, Clear的功能同ListBox完全一樣。
CheckedListBox對ListBox進行了擴展。它幾乎可以完成ListBox可以完成的所有任務,並且還可以在列表項旁邊顯示復選標記。兩個之間的差異在於,CheckedListBox只支持DrawMode.Normal模式;並且CheckedListBox只能有0或1項沒選中。
CheckedListBox在設計時在String Collection Editor中添加好條目,也可以使用Items屬性動態添加。
當以CheckedListBox顯示數據時,可以通過CheckedItems屬性循環訪問所有數據,並且可通過GetItemChecked方法確定哪些項被選中了。GetItemChecked方法參數以項目索引為參數,返回bool值。而SelectedItems和SelectedIndices屬性不用於確定被選中的項,而用於表示突出顯示的項目。
確定CheckedListBox中被選中項目的方法如下:
ComboBox和ListBox具有相似行為,在某些情況下可以互換。使用建議如下:
當你想提供一組建議選項時,使用ComboBox;如果要限制輸入或確定選項列表確定,用ListBox。ComboBox包含一個文本框,因此可以輸入列表中沒有的選項,不過當其DropDownStyle屬性設置為DropDownList時除外,此時當你鍵入的第一個字母與某個條目匹配,會自動選擇該條目。
另外,ComboBox比較節省空間,這點很好理解。不過在DropDownStyle設置為Simple時,會一直顯示完整列表,此時ComboBox占用的空間反倒比ListBox多。
Windows窗體控件綁定到數據時,是不支持排序的,若要排序數據,必須使用支持排序的數據源,然後對數據源進行排序。
如果不是數據綁定控件,可以按以下方法進行排序:
是不是很簡單……
將ComboBox和ListBox綁定到數據,可以方便進行數據庫浏覽,添加新數據,編輯現有數據等工作。
綁定ComboBox和ListBox的過程一樣,如下所示: