【发布时间】:2021-08-15 18:54:06
【问题描述】:
在 WinForms 数据查看器项目中,我制作了一个 ComboBox 来选择过滤器值。列表项来自数据库查询。它们按降序排列。组合框使用AutoCompleteMode.Append。尽管下拉列表按降序排序,但自动完成总是建议最低匹配值而不是最高匹配值。即使我用降序数据显式填充AutoCompleteCustomSource,也会发生这种情况。
有谁知道如何让自动完成提示最高匹配值?
这是下拉列表的一部分:
...
012-0020-00
010-0070-00
010-0069-00
010-0068-00
008-1018-00
...
为什么这很重要:
我将使用此过滤器处理包含数字的各种字符串数据,例如零件代码、文档代码、项目代码等。较新的条目具有更高的数字。并且最常查询最新条目。在上面的例子中,010-0070-00 是010 组的最新部件代码。因此,我希望自动完成功能在我输入 010 后显示 010-0070-00。
此项目取代了 MS Access 前端。如果列表按降序排序,Access ComboBox 会建议最高值。如果按升序排序,则为最小值。但是 Access ComboBoxes 不是 WinForms 控件。
欢迎提出任何建议。
【问题讨论】:
-
另一种想法是使用
ToolStripDropDownMenu创建您自己的自动完成功能。
标签: c# winforms sorting combobox autocomplete