0

フォームにあるすべてのコントロールの値を保存して読み込む方法を探しています。私のフォームには、7 つのタブにまたがる約 100 のコントロールがあります。コントロールには、(Multiline) TextBoxes(Strings)、NumericUpDowns(Integers、Decimals)、およびCheckboxes(Booleans) が含まれます。

ユーザーが保存ボタンをクリックすると、「ファイルの保存」ダイアログが表示され、ユーザーは保存ファイルのディレクトリとファイル名を指定できます。次に、コントロールのすべての値をそのファイルに書き込む必要があります。

ユーザーがロード ボタンをクリックすると、以前に保存した保存ファイルを選択できる [ファイルを開く] が表示されます。すべてのコントロールは、保存ファイルにある値を採用する必要があります。

フォームにアプリケーション設定を実装しました。[保存] をクリックすると、コントロールの値が を介して保存されます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」を上書きする Load ルーチンを作成しました。

    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ます。
ユーザーが [load] をクリックすると、ユーザーが指定した.settingsファイルが上書きさForm1.settingsれ、アプリケーションが再起動して、Form1.settingsファイルから値が読み取られます。

于 2012-05-31T04:49:05.243 に答える