2007年5月18日金曜日

.NET アプリケーション設定ファイル ~プロジェクト間で共有 その2~

それではアプリケーション設定ファイル ~プロジェクト間で共有 その1~で作成したクラスを利用して、ユーザー設定の編集画面、アプリケーション設定の表示画面を作成してみましょう。

ソリューション
|
|-StartUpプロジェクト(Windowsアプリケーション)
|    |-参照設定:Aプロジェクト、共通プロジェクト
|    |--app.config
|    |--Main.vb(Sub Main)
|
|-共通プロジェクト(クラスライブラリ)
|    |-SettingReader.vb
|
|-Aプロジェクト(クラスライブラリ)
|    |-参照設定:共通プロジェクト
|    |-ユーザー設定変更Form
|    |-アプリケーション設定表示Form

Aプロジェクトにユーザー設定変更Formとアプリケーション設定表示Formを追加します。
ユーザ設定変更Formにはフォーム背景色変更ボタン、保存ボタン、終了ボタンを用意します。
アプリケーション設定表示フォームにはProviderName表示用テキストボックス、ConnectionString表示用テキストボックス、終了ボタンを用意します。

ユーザー設定変更Formのコード

Public Class UserSettingSample




    'FormLoadイベント

    Private Sub UserSetting_Load(ByVal sender As ObjectByVal e As System.EventArgs) _

    Handles Me.Load

        'ユーザ設定ファイルよりフォーム背景色を設定します。

        Me.BackColor = 共通プロジェクト.SettingReader.FormBackColor

    End Sub




    '背景色選択ボタンクリックイベント

    Private Sub cmdColor_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) _

    Handles cmdColor.Click

        Using cd As New System.Windows.Forms.ColorDialog

            cd.Color = Me.BackColor

            If cd.ShowDialog = Windows.Forms.DialogResult.OK Then

                'フォームの背景色を選択色に変更します。

                Me.BackColor = cd.Color

            End If

        End Using

    End Sub




    '保存ボタンクリックイベント

    Private Sub cmdEntry_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) _

    Handles cmdEntry.Click

        'ユーザ設定ファイルにフォームの背景色を設定します。

        共通プロジェクト.SettingReader.FormBackColor = Me.BackColor

        '設定ファイルの変更を保存します。

        共通プロジェクト.SettingReader.SettingInstance.Save()

    End Sub




    '終了ボタンクリックイベント

    Private Sub cmdExit_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles cmdExit.Click

        Me.Close()

    End Sub




End Class


アプリケーション設定表示Formのコード

Public Class AppSettingSample


 

    'Loadイベントです。

    Private Sub AppSettingSample_Load(ByVal sender As ObjectByVal e As System.EventArgs) _

    Handles Me.Load

        'アプリケーション設定ファイルよりProviderNameを表示します。

        Me.txtProviderName.Text = 共通プロジェクト.SettingReader.ProviderName

        'アプリケーション設定ファイルよりConnectionStringを表示します。

        Me.txtConnectionString.Text = 共通プロジェクト.SettingReader.ConnectionString

    End Sub


 

    '終了ボタンクリックイベントです。

    Private Sub cmdExit_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) _

    Handles cmdExit.Click

        Me.Close()

    End Sub


 

End Class

ユーザ設定画面を起動し、フォームの背景色を変更し保存します。アプリケーションを終了し再度実行すると、先ほど保存した背景色でフォームが表示されます。別ユーザでログインした場合は、先ほど保存した背景色ではなく設定ファイルのデフォルト値で表示されます。