【C#】設定ファイルの内容を画面へ出力する。画面から設定ファイルの内容を変更する

前提

・「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はプロジェクト名

タイトルとURLをコピーしました