VB2010。我正在尝试创建一个例程,将所有设置加载到一个表格中,可能有50个控件。第一种情况是它加载所有用户定义的设置。第二种情况加载所有应用程序默认设置。我最近发现下面的例程不起作用,因为两个设置类都是相同的。
Private Sub LoadSettingsIntoControls(stsType As Integer)
Dim stsClass As My.MySettings
Select Case stsType
Case 0 ' user-defined
stsClass = My.Settings
Case 1 'app default
stsClass = My.MySettings.Default 'this is the same as My.Settings
Case Else
Throw New Exception("Invalid settings type.")
End Select
txtTmpDir.Text = stsClass.TempDir
txtDataPath.Text = stsClass.DataPath
'<about 50 more controls>
End Sub
我还发现要获取设置的应用默认值,我需要类似
的内容 My.Settings.PropertyValues("TempDir").Property.DefaultValue
我一直在尝试将用户定义和应用默认设置都包含在一个例程中但未能这样做。在我更改设置变量名称的情况下,我想要的是需要很少维护的东西。我一直在看文档和样本,但没有找到任何可靠的东西。有什么建议吗?
答案 0 :(得分:0)
您应该使用前缀定义所有默认属性(例如:def_TempDir) 然后你可以做类似的事情:
Enum EN_PropertyType
User
Application
End Enum
Sub LoadSettingsIntoControls(typ As EN_PropertyType)
For Each ctl In Me.Controls
If ctl.GetType = (New TextBox).GetType Then
Dim SettingName As String = ""
Select Case typ
Case EN_PropertyType.Application
SettingName = "def_" & Mid(ctl.name, 4)
Case EN_PropertyType.User
SettingName = Mid(ctl.name, 4)
End Select
ctl.Text = My.Settings.Item(SettingName)
End If
Next
End Sub