【问题标题】:ComboBox datasource and application.setting issuesComboBox 数据源和 application.setting 问题
【发布时间】:2011-05-11 16:44:11
【问题描述】:

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

这是我想做的:

从数组中填充 ComboBox 的下拉值。例如:

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

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

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

我在这里做错了什么?

【问题讨论】:

  • 您能否指定如何定义设置和组合框之间的绑定。你是用代码做的吗? (如果是的话,你能告诉我们吗?)或者你是在设计师那里做的吗?

标签: .net datasource application-settings


【解决方案1】:

首先,我认为您应该意识到来自 My.Settings.MyVersion 的值不是您在项目属性/设置中定义的值。这些只是初始(默认)值。实际值来自 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-27
    • 2010-09-30
    • 1970-01-01
    • 2019-07-23
    相关资源
    最近更新 更多