0

我正在寻找一种方法来保存和加载表单中存在的所有控件的值。我的表单有大约 100 个控件,分布在 7 个选项卡上。控件包括(多行)TextBoxes(字符串)、NumericUpDowns(整数、小数)和Checkboxes(布尔值)。

如果用户单击保存按钮,应出现“保存文件”对话框,允许用户指定保存文件的目录和文件名。然后应将控件的所有值写入该文件。

如果用户单击加载按钮,则应出现“打开文件”,用户可以在其中选择以前保存的保存文件。然后,所有控件都应采用保存文件中的值。

我已经在我的表单中实现了应用程序设置,现在当我单击保存时,它通过My.Settings.Save(). 如果我单击加载它会加载它们。
但是,我的项目要求可以制作多个保存文件以反映多个配置。据我了解,应用程序设置仅允许应用程序数据文件夹中的单个 .config 文件。

那么如何编写一个保存/加载例程来保存/加载不同的配置呢?

4

1 回答 1

0

站点上的代码提供了另一个提供程序来处理应用程序设置。可以对文件的目标目的地进行编码.settings

我添加了一个CopyFile例程,将生成的.setting文件复制到同一目录,但名称不同,由用户指定。编码:

    If SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
        Dim savefile As String
        savefile = SaveFileDialog1.FileName
        Try
            My.Computer.FileSystem.CopyFile(My.Application.Info.Title & ".settings", savefile, True)
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    Else
        'Nothing
    End If

现在再次加载用户保存的设置,我制作了加载例程,它将所选文件复制到根文件夹并覆盖“Form1.settings”

    If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
        Dim loadfile As String

        loadfile = OpenFileDialog1.FileName

        Try
            My.Computer.FileSystem.CopyFile(loadfile, My.Application.Info.Title &    ".settings", True)
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
        Application.Restart()
    Else
        'Nothing
    End If

该例程执行Application.Restart()这样的操作,即执行 Form1_load 事件并且控件复制.settings文件中的值

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
     TextBox1.Text = My.Settings.Text1 
End Sub

现在,当用户单击保存时,将My.Settings.Save()执行并将Form1.settings文件复制到用户指定的.settings文件中。
当用户单击加载时,用户指定的.settings文件被覆盖Form1.settings并且应用程序重新启动,从文件中读取值Form1.settings

于 2012-05-31T04:49:05.243 回答