Winforms,我可以在这里使用文本框而不是组合框吗?(下拉列表,有超过15k个选项)



在过去的几个星期里,我一直在为工作构建一个产品演示,其中包括一个输入新客户查询信息的窗体。其中一个表单元素是一个文本框,为了方便起见,到目前为止我还没有对其进行任何验证。但是,我现在需要这样做,以便用户只能从sql数据库表(包含大约15k个街道)中输入有效的位置。

我对c#编程还是个新手。我的第一个想法是我应该把我的文本框变成一个组合框,但我似乎记得,当你点击一个组合框时,列表中的所有选项在你输入任何东西之前就会出现。因为我们的电脑很慢,有这么多的选项,我真的不想淹没屏幕,所以我想知道是否有一种方法,我可以继续使用我的文本框和onkeypress(可能是tab键)一个对话框弹出与所有最接近的匹配列表,提示用户选择一个有效的选项?

如果没有,是否有办法阻止我的组合框从显示选项列表,直到提示?

我不认为一个组合框不适合这么多的项目。

我的方法是使用单独的列表视图来显示匹配项。您可能会将匹配放在下拉样式的无边框窗口中,但我发现这更复杂,并且可能难以使交互良好地工作。我将把街道放在一个单独的列表视图控件中,并对其应用一个过滤器。

确保视图是可调整大小的,我发现当使用旧的窗口控件时,由于它是为640x480屏幕编写的,列表很小,并且不允许调整大小,这非常令人沮丧。

记住性能,当按每个键进行搜索时,您可能希望获取所有记录并在内存中进行搜索,而不是为每个键进行sql查询。

最新更新