VB.NET从My.Settings获取默认值

VB.NET从My.Settings获取默认值,vb.net,default,my.settings,Vb.net,Default,My.settings,VB2010。我了解如何保存设置并从My.settings命名空间加载它们。我想弄明白的是如何获取设置的默认值并将其呈现给用户。我不想保存设置,我只想显示当前值和默认值。我试过这个,但我不认为它做了我认为它应该做的: Msgbox "Current setting: " & My.Settings.CustLineWidth & vbcrlf & _ "Default setting: " & My.MySettings.Default.Cust

VB2010。我了解如何保存设置并从My.settings命名空间加载它们。我想弄明白的是如何获取设置的默认值并将其呈现给用户。我不想保存设置,我只想显示当前值和默认值。我试过这个,但我不认为它做了我认为它应该做的:

 Msgbox "Current setting: " & My.Settings.CustLineWidth & vbcrlf & _
        "Default setting: " & My.MySettings.Default.CustLineWidth
我在IDE中设置的默认值是10,但用户将其更改为25。如果我运行上面的代码,我得到

 Current setting: 25
 Default setting: 25
我想要的是

 Current setting: 25
 Default setting: 10
解决方案:我迭代所有设置,并像这样打印出当前值和默认值

        For Each prop As Configuration.SettingsPropertyValue In My.Settings.PropertyValues
            Debug.Print("Name={0}", prop.Name)
            Debug.Print("  Value  ={0}", prop.PropertyValue.ToString)
            Debug.Print("  Default={0}", prop.Property.DefaultValue.ToString)
        Next prop
这对我很有用:

My.Settings.PropertyValues("CustLineWidth").Property.DefaultValue
仅使用以下代码:

MsgBox(CStr(My.Settings.Properties.Item("CustLineWidth").DefaultValue))
此代码返回默认值:带有未处理的错误

My.Settings.PropertyValues("CustLineWidth").Property.DefaultValue
My.MySettings.Default.CustLineWidth
但是这个函数只返回调用“settings.save”方法::之前的最后一个值,并且有未处理的错误

My.Settings.PropertyValues("CustLineWidth").Property.DefaultValue
My.MySettings.Default.CustLineWidth

假设您已将其添加到设置文件中,您只需执行以下操作

My.Settings.YOUR_SETTING_NAME

是的,但假设您有100个设置,您不希望对每个设置都这样做。更容易遍历集合并获取变量名的字符串值,然后在My.Settings.PropertyValues(“CustLineWidth”).Property.DefaultValue中使用它。我一做完就把我的方法贴出来。