2012年7月14日土曜日

C# フォームアプリケーションの設定を保存&読み込み


アプリケーション固有の情報をXML形式で扱う手順を説明。

ソリューションエクスプローラでプロジェクトを右クリック → [プロパティ]をクリック。




[設定]タブをクリックし、
名前/型/スコープ/値を入力する。

名前は、プログラムで値を取得&設定するときに利用する。

型は、扱う値の型。

スコープは、値の取得と設定を制限するために利用する。
「アプリケーション」を指定した場合は、値の取得のみが可能。
「ユーザー」を指定した場合は、取得と設定が可能になる。

書き換える必要のない設定値なら「アプリケーション」を
ユーザーが設定を変更できるようにしたいなら「ユーザー」を選択する。といった感じでしょうか。

値は、設定値そのもの。


アプリケーションの設定をしビルドをすると、
「アプリケーション名.exe.config」ファイルが作成される。

スコープで「ユーザー」指定した値をプログラムから設定すると、
設定した値は「user.config」ファイルが作成され、このファイルに保存される。

プログラムでの設定は「アプリケーション名.exe.config」ファイルには反映(影響)されないようだ。


「アプリケーション名.exe.config」ファイルや、「user.config」ファイルの値を読み書きする方法はつぎのとおり。

「Properties.Settings.Default.名前」で値を取得します。
名前は、2番目の画像で指定した名前です。

値の設定は、「Properties.Settings.Default.名前」で設定し、「Properties.Settings.Default.Save();」をよびだし保存します。Saveメソッドを呼び出さなければファイルに書き込まれません。

コメント部分は、コンパイルエラーになります。
理由は、2番目の画像でスコープを「アプリケーション」で指定してあるため。「アプリケーション」を指定した場合は読み込み専用になります。

書き込む場合は、「ユーザー」を指定します。