我正在寻找一种方法来保存和加载表单中存在的所有控件的值。
我的表单有大约100个控件分布在7个选项卡上。控件包括(多行)TextBoxes
(字符串),NumericUpDowns
(整数,小数)和Checkboxes
(布尔)。
如果用户单击“保存”按钮,则会出现“保存文件”对话框,允许用户指定保存文件的目录和文件名。 然后应将控件的所有值写入该文件。
如果用户单击加载按钮,则应显示“打开文件”,用户可以在此处选择以前保存的保存文件。然后,所有控件都应采用保存文件中的值。
我已在表单中实现了“应用程序设置”,现在当我单击“保存”时,它会通过My.Settings.Save()
保存控件值。如果我点击加载它会加载它们
但是,我的项目要求可以生成多个保存文件以反映多个配置。据我所知,应用程序设置只允许Application Data文件夹中的单个.config文件。
那么如何编写保存/加载例程以保存/加载不同的配置?
答案 0 :(得分:0)
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
现在再次加载用户保存的设置我已经使Load例程将所选文件复制到根文件夹并覆盖“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
文件中的值。