如何根据键入的内容过滤组合框的内容?

nar*_*ren 6 delphi combobox autocomplete

我们有一个包含100多个项目的组合框.

我们想要在组合框中输入字符时过滤掉项目.例如,如果我们输入'ac'并单击下拉选项,那么我们希望它显示仅以'ac'开头的项目.

我怎样才能做到这一点?

Rob*_*edy 10

也许你会更乐意使用操作系统内置的自动完成功能.我先前概述了如何做到这一点.创建一个IAutoComplete对象,将其连接到组合框的列表并编辑控件,操作系统将在用户键入时自动显示潜在匹配的下拉列表.您不需要自己调整组合框的列表.


Rob*_*edy 1

您可以处理组合框的OnChange事件。将所有项目的主列表与 UI 控件分开,并且每当组合框的编辑控件发生更改时,相应地调整组合框的列表。删除与当前文本不匹配的项目,或从主列表中重新添加之前删除的项目。