将My.Settings重置为上次保存的值

时间:2014-05-10 18:22:05

标签: vb.net my.settings

我目前正在使用“设置”表单为我的应用程序设置各种设置。我要做的是在打开和更改字段之前将设置恢复为用户所做的任何更改之前。我有一个文本框,其中包含绑定到设置的数据,当我进行更改并单击“确定”时,下次打开时会保存。当我点击取消时它也会被保存。不太确定我是否正确接近这个。

Public Class frmSettings
    Private _mysettings As Configuration.SettingsBase

    Private Sub frmSettings_Load(...) Handles Me.Load
        _mysettings = My.Settings
    End Sub

    Private Sub btnCancel_Click(...) Handles btnCancel.Click
        For Each p As Configuration.SettingsPropertyValue In _mysettings.PropertyValues
            My.Settings(p.Name) = p.PropertyValue
        Next
        Me.Close()
    End Sub

    Private Sub btnOkay_Click(...) Handles btnOkay.Click
        My.Settings.Save()
        Me.Close()
    End Sub
End Class

1 个答案:

答案 0 :(得分:0)

您可以在加载设置表单时简单地加载设置值,而不是使用数据绑定控件。这样做很简单,而且很有效。否则你必须克隆My.Settings:执行_mysettings = My.Settings只是创建一个指向My.Settings的指针,而不是它的副本。

例如,我有一个名为ChangeConnectionString的Form,其中包含OK / Cancel按钮和一个名为connString的TextBox控件:

Public Class ChangeConnectionString

    Private Sub bnOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bnOK.Click
        My.Settings.connectionString = connString.Text
        My.Settings.Save()
        Me.Close()
    End Sub

    Private Sub bnCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bnCancel.Click
        Me.Close()
    End Sub

    Private Sub ChangeConnectionString_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        connString.Text = My.Settings.connectionString
    End Sub

End Class