2015-11-07 76 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