0

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

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
4

1 回答 1

0

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

例如,我有一个名为 ChangeConnectionString 的表单,它具有确定/取消按钮和一个名为 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
于 2014-05-10T19:32:55.960 回答