我正在尝试做一些我认为在WinForms中相对简单的事情,但事实并非如此。
这就是我想要做的事情:
从阵列填充ComboBox的下拉值。例如:
Dim versions As String() = New String() {"3", "4"}
cmbVersion.DataSource = versions
简单,没问题。但是我遇到问题的地方是我将这个相同的组合框绑定到名为MyVersion
的user.settings(一个字符串值)。该值目前为“4”。
当我加载表单时,我希望下拉列表为“3”和“4”,显示的文本将是MyVersion
中的任何内容。这不起作用。该值始终为“3”,在组合框中将其更改为“4”对MyVersion
没有影响。
我在这里做错了什么?
答案 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