C# ComboBox自動完成功能的樣本

來源:互聯網
上載者:User

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。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.