65.9K
CodeProject 正在变化。 阅读更多。
Home

动态用户设置

starIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIconemptyStarIcon

1.25/5 (9投票s)

2008年3月22日

CPOL
viewsIcon

43111

downloadIcon

1030

动态用户设置

Visual Studio 使添加用户和应用程序作用域设置变得容易。项目属性中的“设置”选项卡允许您在设计时添加设置。您可以决定类型、作用域和默认值。但是,有时您可能希望在运行时添加用户作用域属性。我将演示如何执行此操作。

添加属性

  1. 创建一个 System.Configuration.SettingsAttributeDictionary 的实例。
  2. 创建一个 System.Configuration.UserScopedSettingsAttribute 的实例。
  3. System.Configuration.UserScopedSettingsAttribute 对象添加到 System.Configuration.SettingsAttributeDictionary
  4. 创建一个 System.Configuration.SettingsProperty 的实例,并将 System.Configuration.SettingsAttributeDictionary、属性名称、默认值和类型作为构造函数的参数传递进去。
  5. System.Configuration.SettingsAttributeDictionary 添加到 My.MySettings.Default.Properties 集合。

示例代码

Private Sub AddProperty(ByVal propertyName As String, _
      ByVal defaultValue As String, ByVal propertyType As Type)
     Dim providerName As String = "LocalFileSettingsProvider"

     Dim attributes As New Configuration.SettingsAttributeDictionary()
     Dim attr As New Configuration.UserScopedSettingAttribute()
     attributes.Add(attr.TypeId(), attr)

     Dim prop As New Configuration.SettingsProperty( _
      New Configuration.SettingsProperty(propertyName, propertyType, _
     My.MySettings.Default.Providers(providerName), False, defaultValue, _
     Configuration.SettingsSerializeAs.String, attributes, False, False))

     My.MySettings.Default.Properties.Add(prop)
End Sub

设置属性值
示例代码

My.MySettings.Default.Item(propertyName) = propertyValue
获取属性值

示例代码

My.MySettings.Default.Item(propertyName).ToString()
下次运行时访问属性

您可能会注意到,下次运行应用程序时,您添加的属性没有自动加载。只有存在于 My.MySettings.Default 对象中的属性在加载属性时才会被加载。

  1. 添加您的属性。
  2. 重新加载您的 My.MySettings.Default 对象。

示例代码

AddProperty(SavedPropertyNameTextBox.Text, String.Empty)
My.MySettings.Default.Reload()


© . All rights reserved.