WinForms名称选择器

WinForms名称选择器,winforms,Winforms,我有一组名称(第一个、最后一个、称呼),需要一个控件来允许用户使用WinForms选择单个名称。如果有大约20个名称,则组合框可以正常工作,但如果名称超过100个,则效果不佳 有人能推荐一个取名字的人吗?也许是我可以自定义的通讯簿控件?我自己写并不难,但我还有其他的轮子要发明。我给你的答案更像是一个功能请求…:-)如果您实现一个行为类似于Google的自动完成功能的控件,则使用起来非常简单:用户插入的foreach char将显示一个窗口,其中只显示与插入的字符串匹配的名称。 我认为实施起来并不

我有一组名称(第一个、最后一个、称呼),需要一个控件来允许用户使用WinForms选择单个名称。如果有大约20个名称,则组合框可以正常工作,但如果名称超过100个,则效果不佳


有人能推荐一个取名字的人吗?也许是我可以自定义的通讯簿控件?我自己写并不难,但我还有其他的轮子要发明。

我给你的答案更像是一个功能请求…:-)如果您实现一个行为类似于Google的自动完成功能的控件,则使用起来非常简单:用户插入的foreach char将显示一个窗口,其中只显示与插入的字符串匹配的名称。

我认为实施起来并不难,但很抱歉,我不能给你一个建议,只能给你一个建议:-)

我同意莫里齐奥的观点。他补充说:

最常用的界面就是在电子邮件客户机中实现这一点,在您键入时,它们会自动完成名称(和/或电子邮件地址)。雷鸟就是一个很好的例子。如果只有一个匹配项,它们通常会自动完成,或者显示可从中选择的可能自动完成项的下拉列表。此外,字段旁边的按钮通常允许您以列表的形式浏览通讯簿


我还建议以最有用的方式过滤自动补全:例如,当您键入“wi”时,您可以将其过滤为诸如“[wi]lson,John”,“Amery,[wi]lliam”和“[I]ving,[W]alter”等名称,通过姓名首字母、姓氏和名字很容易找到人。

你能详细说明你对组合框最大的不满是什么吗?是因为你没有寻呼吗?您是否无法正确搜索?是否有可用的现有控件?由于这是一个如此普遍的要求,重新设计轮子似乎不正确,这也是问题的一部分。几个.net文本输入控件允许您提供自动完成列表,它们将为您提供此功能。毫无疑问,有第三方选项提供更全面的选项。但这种小UI功能编写起来很有趣:-)