今回は、Visual Studio C# で、[設定] ページ (プロジェクト デザイナー)を利用する方法を紹介
[プロジェクト] メニューの [プロパティ] をクリックし、[設定] タブをクリックする。
ここで、ユーザー設定の保存先の[名前] 等を予め決めておく。
次に、プログラムでは、
Properties.Settings.Default.[名前] が、ユーザー設定の格納場所となる。
設定を呼び出すときは
this.label1.Text = Properties.Settings.Default.[名前];
設定を格納するときは
Properties.Settings.Default.[名前] = this.textBox1.Text;
となる。
格納した設定をファイルとして保存するには
Properties.Settings.Default.Save();
ファイルとして保存して置かないと、アプリ終了時に設定が消えてしまうので
終了前には必ず実行すること。
アプリ起動時のファイルからの読み込みは、自動的に行なわれる。
設定を変更後、保存した設定ファイルの値に戻したい場合
Properties.Settings.Default.Reload();
設定を既定値([設定] の[値]欄の値 )に戻したい場合
Properties.Settings.Default.Reset();
この場合、設定ファイルの値もリセットされるので注意
また、Save()、Reload()、Reset() は、設定[名前] ごとに行われるのではなく
すべての設定[名前] に対して行われる。
---------------------------------------
動作確認用にプログラムを作ってみた。
Settings Management WinDesktop C#
[設定] ページ (プロジェクト デザイナー)で、下記を入力
[名前] TextSetting1
[型] string
[スコープ] ユーザー
[値] 初期値
form に label と textBox それと button を3つ配置
button1 が Save
button2 が Reload
button3 が Reset
Form1.cs
====================================================================
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Settings_Management
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// 起動時に保存してある設定を呼び出す
this.textBox1.Text = Properties.Settings.Default.TextSetting1;
private void button1_Click(object sender, EventArgs e)
{
// 変数に設定した値を、設定ファイルとして保存したい場合
Properties.Settings.Default.Save();
}
private void button2_Click(object sender, EventArgs e)
{
// 変数の値を設定した後で、現在の設定ファイルの値に戻したい場合
Properties.Settings.Default.Reload();
this.textBox1.Text = Properties.Settings.Default.TextSetting1;
}
private void button3_Click(object sender, EventArgs e)
{
// 既定値に戻したい場合
Properties.Settings.Default.Reset();
this.textBox1.Text = Properties.Settings.Default.TextSetting1;
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
// 設定の格納
Properties.Settings.Default.TextSetting1 = this.textBox1.Text;
this.label1.Text = Properties.Settings.Default.TextSetting1;
}
}
}
0 件のコメント:
コメントを投稿