作成したアプリに入力した設定などを保存する方法についてメモ。
いろいろな手段がある様だけど、.settingsを利用。まずはフォームの作成。
テキストボックス1個とコマンドボタン1個、名前もそのまま。
次にソリューションエクスプローラのプロパティから、設定構成画面を開く。
VS画面の右上、「Properties」配下の「Settings.settings」という文字列をWクリック。これがわからずに時間がかかった
開いた画面に名前と型、値を入力。
2つあるけど今回使うのは上の「myTextData」としたものだけです。
コードは以下。
namespace 設定保存練習
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// 起動時に設定の値を読み込む
this.textBox1.Text = Properties.Settings.Default.myTextData;
}
private void button1_Click(object sender, EventArgs e)
{
DialogResult Ans = MessageBox.Show("保存するよ?",
"確認",
MessageBoxButtons.YesNo,
MessageBoxIcon.Question);
if (Ans == DialogResult.Yes)
{
// 設定にテキストボックスの値を代入
Properties.Settings.Default.myTextData = this.textBox1.Text;
// 設定を保存
Properties.Settings.Default.Save();
}
}
}
}
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// 起動時に設定の値を読み込む
this.textBox1.Text = Properties.Settings.Default.myTextData;
}
private void button1_Click(object sender, EventArgs e)
{
DialogResult Ans = MessageBox.Show("保存するよ?",
"確認",
MessageBoxButtons.YesNo,
MessageBoxIcon.Question);
if (Ans == DialogResult.Yes)
{
// 設定にテキストボックスの値を代入
Properties.Settings.Default.myTextData = this.textBox1.Text;
// 設定を保存
Properties.Settings.Default.Save();
}
}
}
}
設定した値にアクセスするには、「Properties.Settings.Default.myTextData」で行う。また、保存は「Properties.Settings.Default.Save();」で行っている。
設定が書き込まれたかどうかを確認するには、デバッグではできないっぽい(アプリを終了すると、設定はデフォルトの値に戻ってしまう)ので、ビルドして発行、インストール。
初回起動時は初期設定の値がテキストボックスに入った状態で起動する。
確認ダイアログで「はい」を選ぶと保存されるはず。そのままアプリを終了させる。
次に起動すると、前回保存した値がテキストボックスへ入力されて起動。やったね
最初プロジェクト名を「configtest」でやったところ、設定を保存するところで例外エラーが発生した。どうやら「config」で始まる名前空間はダメらしい。
ほかの方法も含め、参考にしたブログ
C#でアプリケーション設定を取得・保存する、いくつかの方法