【问题标题】:Resetting a key in My.Setting在 My.Setting 中重置密钥
【发布时间】:2010-02-06 19:32:47
【问题描述】:

我知道可以使用Reset() 方法重置My.Settings

有没有办法只为一个设置做同样的事情?或者简单地获取其默认值而不是用户更改的值。 (我指的是用户范围设置

【问题讨论】:

    标签: .net winforms settings application-settings


    【解决方案1】:

    您无法重置一项设置。通过Properties 集合很容易得到默认值。具体来说,SettingsPropertyDefaultValue 属性。此外,PropertyValues 集合包含SettingsPropertyValue 对象,允许您通过IsDirtyUsingDefaultValue 属性确定属性/设置是否已更改。

        Dim a As Object = My.Settings.Properties.Item("fred").DefaultValue
        Dim b As Boolean = My.Settings.PropertyValues.Item("fred").IsDirty
        Dim c As Boolean = My.Settings.PropertyValues.Item("fred").UsingDefaultValue
    

    我希望有一种无需指定设置名称即可获取这些值的方法。

    【讨论】:

    • 请解释否决票。这是一个公认的答案。问题是答案并提供了解决方法。因此,提供评论会有所帮助。
    • 我永远无法让UsingDefaultValue 工作。无论我在代码中的哪个位置检查它,它总是错误的。 IsDirty 似乎工作正常。
    • 另外,我发现使用 StringCollection 类型设置,您无法将当前值与 DefaultValue 进行比较,因为后者是序列化的 XML 字符串,而前者被反序列化为集合/数组。
    【解决方案2】:

    不确定是否只重置一个设置,但您可以将设置复制到另一个对象 Reset(),然后将除您要重置的设置值之外的所有设置值复制回来。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-07
      • 1970-01-01
      • 1970-01-01
      • 2013-03-07
      • 1970-01-01
      相关资源
      最近更新 更多