ComboBox数据源和application.setting问题

时间:2010-11-17 21:32:58

标签: .net datasource application-settings

我正在尝试做一些我认为在WinForms中相对简单的事情,但事实并非如此。

这就是我想要做的事情:

从阵列填充ComboBox的下拉值。例如:

Dim versions As String() = New String() {"3", "4"}
cmbVersion.DataSource = versions

简单,没问题。但是我遇到问题的地方是我将这个相同的组合框绑定到名为MyVersion的user.settings(一个字符串值)。该值目前为“4”。

当我加载表单时,我希望下拉列表为“3”和“4”,显示的文本将是MyVersion中的任何内容。这不起作用。该值始终为“3”,在组合框中将其更改为“4”对MyVersion没有影响。

我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

首先,我认为你应该意识到来自My.Settings.MyVersion的价值不是你在Project Properties / Settings中定义的。这些只是初始(默认)值。实际值来自user.config文件。在新用户第一次运行应用程序时,会在运行时自动创建user.config文件,并将非默认值写入用户范围的设置。 位置类似于:

c:\ Documents and Settings \ [username] \ Local Settings \ Application Data \ [companyname] [appdomainname] [eid] [hash] \ [verison]

虽然每个操作系统可能会有所不同。

其次,在您通过调用:

告知之前,设置不会持久存在
My.Settings.Save()

我希望这会澄清一些事情。

您可以通过在设计器中设置SelectedItem属性或通过调用:

来绑定值
cmbVersion.SelectedItem = My.Settings.Myversion