前提
・「Settings.settings」を使用する
・設定ファイルの内容を出力/変更する画面名を「SettingWindow」とする
・設定ファイルの内容は以下とする
・名前(userName)
・年齢(age)
・メールアドレス(mailAdress)
サンプルプログラム
1.「Settings.settings」をダブルクリック
2.「Settings.settings」に設定項目を設定する。アクセス修飾子を「Public」へ変更する。
3.設定ファイルの内容を出力/変更する画面(SettingWindow)を作成する
●プロジェクトを右クリック→追加→[新しい項目]
●「ウィンドウ(WPF)」を選択し任意の名前を入力し、「追加」をクリック
4.作成した画面(SettingWindow)に、設定ファイルの内容を出力するTextBoxを配置する
保存ボタンとキャンセルボタンも配置する
5.作成した画面(SettingWindow)に、設定ファイルの内容を設定する
●SettingWindow.xaml.csファイル
(省略)
public partial class SettingWindow : Window
{
public SettingWindow()
{
InitializeComponent();
//設定ファイルの内容を取得し保持用クラスに設定
Settings settings = new Settings();
settings.userName = Properties.Settings.Default.userName;
settings.age = Properties.Settings.Default.age;
settings.mailAdress = Properties.Settings.Default.mailAdress;
//画面にBindingするための記載
this.DataContext = settings;
}
}
//設定ファイルの内容を保持するクラス
public class Settings
{
public string userName { get; set; }
public string age { get; set; }
public string mailAdress { get; set; }
}
● SettingWindow.xamlファイル
<TextBox x:Name="TextBox_userName" (省略) Text="{Binding userName, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
<TextBox x:Name="TextBox_age" (省略) Text="{Binding age, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
<TextBox x:Name="TextBox_mailAdress" (省略) Text="{Binding mailAdress, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
6.作成した画面(SettingWindow)に、画面の内容を設定ファイルへ保存する処理を記載する
●SettingWindow.xaml.csファイル
private void Button_save_Click(object sender, RoutedEventArgs e)
{
//画面(TextBox)の内容を設定ファイルへ設定
Properties.Settings.Default.userName = TextBox_userName.Text;
Properties.Settings.Default.age = TextBox_age.Text;
Properties.Settings.Default.mailAdress = TextBox_mailAdress.Text;
//設定ファイルを保存
Properties.Settings.Default.Save();
MessageBox.Show("保存しました。", "保存");
//画面を閉じる
this.Close();
}
private void Button_cancel_Click(object sender, RoutedEventArgs e)
{
//画面を閉じる
this.Close();
}
7.任意の処理の中で、「3.」の画面(SettingWindow)を表示するコードを記載
●MainWindow.xaml.csファイルなど
private void Button_Click(object sender, RoutedEventArgs e)
{
//設定ファイルの内容を出力/変更する画面(SettingWindow)を表示
SettingWindow settingWindow = new SettingWindow();
//settingWindow.Show();
//ShowDialogで表示するとモーダル表示となり親ウィンドウを操作不可にできる
settingWindow.ShowDialog();
}
確認
1.プログラムを実行し画面(SettingWindow)を表示して、設定ファイルの内容が出力されている
ことを確認する
2.画面(SettingWindow)の内容を変更し保存する
3.再度当該画面を表示し、変更されていることを確認する
設定ファイルの保存場所
設定ファイルは以下等のパスに保存される
C:\Users\user\AppData\Local\sampleApp\sampleApp.exe_Url_aajkf2505xn4fvp5jqmaow3etyj51wwg\1.0.0.0
┗user.config
※userはWindowsのログインユーザ名
※sampleAppはプロジェクト名