【发布时间】:2012-07-25 05:11:22
【问题描述】:
我有一个 c# 中的 WinForms 程序,它具有一个文本字段,我想用一个可编辑的 ComboBox 替换它。
我想要实现的效果类似于OpenFileDialog,或者某种程度上是Windows Explorer 中的地址栏。也就是说,当您输入有效项目时,该项目将添加到下拉菜单显示的可能值列表中。我也希望这在程序的后续运行中持续存在。
所以,基本上
- 程序第一次运行,ComboBox为空,列表中没有任何内容
- 用户在 ComboBox 中输入一个值并按 Enter(或按钮),使用该值,然后将其添加到 ComboBox 的列表中
- 用户退出程序
- 用户重新进入程序,ComboBox 为空,但之前会话中使用的值在列表中。
我可以想出几种方法来实现这一点,但这似乎有一种我不知道的简单方法可以实现。就像某人如何实现自动完成只是发现控件已经支持它一样。
如果没有,那么我可以继续使用其他方式来添加和保存信息,我只是好奇是否已经有现成的东西。
【问题讨论】:
-
Combox 具有自动完成功能。您唯一需要做的就是将列表保存在存储中并检索它。 (普通文件 IO)
-
我同意 Steve 的观点。您可以依靠序列化来轻松持久化状态对象,而不是深入 I/O 原始操作。无论如何,如果我是你,我更喜欢一个简单的对列表作为键、值持久化\n
-
也许这是user defined settings?的工作
-
您可以将搜索词列表保存为
System.Collections.Specilized.String.Collection设置并在应用程序启动时检索值。 -
好的,所以我基本上走的是文件 I/O 路线,所以如果有人回答我会接受它