2015-11-07 69 views
0

我正在使用具有自動完成功能的組合框。此代碼被用於:組合框自動完成任何字符串出現

comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDown; 
comboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend; 
comboBox1.AutoCompleteSource = AutoCompleteSource.ListItems; 
comboBox1.DataSource = items; 

DataSourceitemsList<String>.假設我的名字(例如約翰月)的列表,搜索不會顯示ComboBox項目‘約翰五月’ 。相反,我必須輸入「約翰」John May才能顯示。

我需要調整什麼才能搜索整個ComboBox條目而不僅僅是字符串的第一部分? 我期待着看到一些建議。

回答

-1

不幸的是,使用內置的功能,不可能執行包含類似的字符串匹配的。從MSDN site(重點煤礦):

使用AutoCompleteCustomSource,AutoCompleteMode和 AutoCompleteSource屬性來創建自動 通過比較前綴被輸入到所有字符串的 前綴在完成輸入字符串一個ComboBox維護來源

This post建議通過對按鍵事件作出反應手動處理此功能。

+0

謝謝。不幸的是,我無法相處。 – Jan

0

顯然,您不能使用自動完成類來執行此類操作。相反,您可以使用數據表創建自定義源。數據表允許搜索帶有「Like」功能的單詞。

  1. 將數據表創建爲主表(不要在組合框中輸入時更改此表的數據)。
  2. 將您的列表加載到表
  3. 執行搜索操作。
  4. 執行過濾操作並將過濾的結果加載到臨時表中。
  5. 將臨時表設置爲組合框的客戶來源。

如需清楚的答案,請檢查此MSDN link