DataTable dt = new DataTable();
dt.Columns.Add("Name");
dt.Columns.Add("VV");
dt.Rows.Add(new string[] { "王一", "x" });
dt.Rows.Add(new string[] { "趙一", "z" });
dt.Rows.Add(new string[] { "王二", "y" });
dt.Rows.Add(new string[] { "趙二", "w" });
this.comboBox1.DataSource = dt;
this.comboBox1.DisplayMember = "Name";
this.comboBox1.ValueMember = "VV";
this.comboBox1.AutoCompleteSource = AutoCompleteSource.ListItems; //設定自動完成的源
this.comboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend; //設定自動完成的的形式
上面的 AutoCompleteSource 是大家應該關注的一點,具體的值有9種選擇,其中8種是可以研究一下的
————————————————————————————————
DisplayMember 與ValueMember 屬性的區別:
DisplayMember綁定的是需顯示的欄位
ValueMember綁定的是對應的值
//*
所對應的值就是一條記錄裡面 有識別欄位ID(唯一) 有顯示的列(如名稱,可重複)
ValueMember 可以成為名稱,也可成為ID
但是一般來說都只綁定ID 這樣好處理,也很方便識別,
DisplayMember 是綁定顯示的資料 如:北京
一般 DisplayMember是顯示給客戶看的
而ValueMember 是綁定處理常式標識 給程式員看的
當然要看具體需求了
*//
combobox控制項顯示的是DisplayMember 綁定的欄位,也就是說用控制項的text屬性取的值是DisplayMember 綁定的欄位。
而用combo.SelectedValue就可以取得選中項的ValueMember 值(未證實)。
————————————————————————————————————
SelectedValue 屬性:擷取或設定由 ValueMember 屬性指定的成員屬性的值。 類型:System.Object,包含由 ValueMember 屬性指定的資料來源成員的值的對象。
用法:textBox1.Text = ListBox1.SelectedValue.ToString();
————————————————————————————————————
說明:當設定了DataSource 屬性後,SelectedValue 屬性值會預設為第一行,因此,如果不希望ComboBox自動選擇第一行,還需在設定完DataSource 後自行將SelectedValue 設為“”。(根據SelectedValue的實值型別設定,如果是字元就設定“”,如果是數值可設定為0)
————————————————————————————————————
也可使用 combox.Items.Add(“items的內容”);方法來插入欄位。
————————————————————————————————————
AutoCompleteMode 屬性:
擷取或設定控制自動完成如何作用於combobox的選項。即自動完成的形式。
其取值範圍:
None 禁用 ComboBox 和 TextBox 控制項的自動完成功能。
Suggest 顯示與編輯控制項關聯的輔助下拉式清單。此下拉式清單填充了一個或多個建議完成字串。
Append 將最可能的候選字串的其餘部分追加到現有的字元,並反白追加的字元。
SuggestAppend 同時應用 Suggest 和 Append 選項。 既顯示下拉式清單,也自動追加文字。
————————————————————————————————————
AutoCompleteSource 屬性 :
擷取或設定一個值,該值指定用於自動完成的完成字串的源。指定自動完成的源。
其取值範圍:
FileSystem 將檔案系統指定為源。
HistoryList 包括歷程清單中的統一資源定位器 (URL)。
RecentlyUsedList 包括最近使用的 URL 列表中的統一資源定位器 (URL)。
AllUrl 將 HistoryList 和 RecentlyUsedList 的等效項指定為源。
AllSystemSources 將 FileSystem 和 AllUrl 的等效項指定為源。當 AutoCompleteMode 已設定為某個值,而不是預設值時,此即為預設值。
FileSystemDirectories 指定僅自動完成目錄名而不自動完成檔案名稱。
CustomSource 將內建 AutoCompleteStringCollection 中的字串指定為源。
None 指定當前沒有使用任何 AutoCompleteSource。這是 AutoCompleteSource 的預設值。
ListItems 指定 ComboBox 的項表示源。
————————————————————————————————————
儘管上述的自動完成功能基本可以滿足日常用途,但我希望自動完成能模糊的自動匹配所輸入文字之前的部分,例如“中國北京大學”,只要輸入“北京”就能找出來。但上述方法只能實現輸入“中國”後,自動補全後面部分,或顯示所有以“中國”為開頭的Items。