Winforms,我可以在这里使用文本框而不是组合框吗? (超过 15k 选项的下拉列表)
Winforms, can I use a text box here instead of a combobox? (dropdown list with over 15k options)
在过去的几周里,我一直在为工作构建一个产品演示,其中包括一个用于输入新客户查询信息的 winform。其中一个表单元素是一个文本框,为了方便起见,到目前为止我还没有对其进行任何验证。但是,我现在需要做到这一点,以便用户只能从 sql 数据库 table(包含大约 15k 条街道)中输入有效位置。
我对 C# 编程还是很陌生。我的第一个想法是我应该将我的文本框更改为组合框,但我似乎记得当您单击组合框时,列表中的所有选项都会在您键入任何内容之前出现。由于我们的电脑速度很慢而且有很多选项,我真的不想让屏幕充满所以我想知道是否有办法继续使用我的文本框和 onkeypress(可能是 Tab 键)弹出一个对话框列表中所有最接近的匹配项,提示用户 select 有效选项?
如果没有,有没有办法阻止我的组合框在出现提示之前显示选项列表?
我认为组合框不太适合那么多项目。
我采用的方法是使用单独的列表视图来显示匹配项。您或许可以将匹配项置于无边框的下拉式样式中 window,但我发现那样更复杂并且可能难以使交互正常工作。
我只想将街道放在单独的列表视图控件中,然后对其应用过滤器。
确保视图可以调整大小,我发现在使用旧的 window 控件时非常令人沮丧,因为它是为 640x480 屏幕编写的,列表很小,并且不允许调整大小。
记住性能,在使用每个按键进行搜索时,您可能希望获取所有记录并在内存中进行搜索,而不是对每个键进行 sql 查询。
在过去的几周里,我一直在为工作构建一个产品演示,其中包括一个用于输入新客户查询信息的 winform。其中一个表单元素是一个文本框,为了方便起见,到目前为止我还没有对其进行任何验证。但是,我现在需要做到这一点,以便用户只能从 sql 数据库 table(包含大约 15k 条街道)中输入有效位置。
我对 C# 编程还是很陌生。我的第一个想法是我应该将我的文本框更改为组合框,但我似乎记得当您单击组合框时,列表中的所有选项都会在您键入任何内容之前出现。由于我们的电脑速度很慢而且有很多选项,我真的不想让屏幕充满所以我想知道是否有办法继续使用我的文本框和 onkeypress(可能是 Tab 键)弹出一个对话框列表中所有最接近的匹配项,提示用户 select 有效选项?
如果没有,有没有办法阻止我的组合框在出现提示之前显示选项列表?
我认为组合框不太适合那么多项目。
我采用的方法是使用单独的列表视图来显示匹配项。您或许可以将匹配项置于无边框的下拉式样式中 window,但我发现那样更复杂并且可能难以使交互正常工作。 我只想将街道放在单独的列表视图控件中,然后对其应用过滤器。
确保视图可以调整大小,我发现在使用旧的 window 控件时非常令人沮丧,因为它是为 640x480 屏幕编写的,列表很小,并且不允许调整大小。
记住性能,在使用每个按键进行搜索时,您可能希望获取所有记录并在内存中进行搜索,而不是对每个键进行 sql 查询。