combobox auto完成任何字符串的出现

时间:2015-11-07 21:15:55

标签: c# winforms combobox autocomplete

我正在使用具有自动完成功能的ComboBox。正在使用此代码:

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

DataSource的{​​{1}}是items假设我有一个名单(例如 John May ),搜索 May 不会显示List<String>.项目“John May”。相反,我必须输入“John”才能显示 John May

我需要调整什么才能搜索整个ComboBox条目而不仅仅是字符串的第一部分? 我期待看到一些建议。

2 个答案:

答案 0 :(得分:0)

显然,您无法使用 autocomplete 类执行此类操作。相反,您可以使用数据表创建自定义源。数据表允许搜索具有“Like”功能的单词。

  1. 将数据表创建为主表(在组合框中键入时不要更改此表的数据)。
  2. 将列表加载到表格
  3. 执行搜索操作。
  4. 执行过滤操作并将过滤后的结果加载到临时表中。
  5. 将临时表设置为组合框的客户来源。
  6. 要获得明确答案,请查看MSDN link

答案 1 :(得分:-1)

不幸的是,使用内置功能无法执行包含类似的字符串匹配。来自MSDN site(强调我的):

  

使用AutoCompleteCustomSource,AutoCompleteMode和   AutoCompleteSource属性可自动创建ComboBox   通过比较输入的前缀来完成输入字符串   维护来源中所有字符串的前缀

This post建议通过对按键事件做出反应来手动处理此功能。