文本框自动完成源

本文关键字:文本 | 更新日期: 2023-09-27 17:56:06

使用 winforms 中的组合框,我可以添加可以是自定义类的项目,组合中显示的是该类的 ToString() 方法的结果

理想情况下,我希望对文本框的自动完成具有类似的行为,但在我看来,您必须为此提供AutoCompleteStringCollection。有没有人知道我可以将int值与文本框AutoCompleteSource中的每个字符串相关联的方法?

编辑 - 我不能简单地根据所选字符串查找int,因为它们可能是文本框自动完成中的字符串

文本框自动完成源

,它们是相同的

这是一个可能的解决方案; 有点黑客,但它可能会帮助你。

如果以用户可接受的方式将数字添加到字符串中,并且易于协调/删除,则可以在 KeyUp 事件中对其进行测试,提取索引并清理文本。

所以字符串可能看起来像这样

New York City          <<01>>

而且您不会有太多麻烦来获取索引并删除标记。

看看汉斯的这个答案,他负责检测被触发的(假)KeyDown。您可以调整它以处理 KeyUp,这样您就不会干扰正常的编辑。

但重申一下,这是没有意义的,如果对于用户的选择,字符串具有含义而不是它们的位置。