【问题标题】:Save/Load control values (Multiline Textboxes, NumericUpDowns, Checkbox) to/from file将控件值(多行文本框、NumericUpDowns、复选框)保存到文件/从文件中加载
【发布时间】:2012-05-30 05:17:29
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: vb.net load save


    【解决方案1】:

    this 站点上的代码提供了另一个提供程序来处理应用程序设置。可以对.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 文件中读取值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-18
      • 1970-01-01
      • 2014-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多