私は設定を使用するこの評価者の単純なアプリケーションを持っています。そのために、独自のプロパティ設定ファイルを作成しました。ここまでは順調ですね。それはすべてうまくいきます。設定はそこにあり、私はそれらを使用できます。
これらの設定を実行時に変更できるようにしています。見た目からして、それもかなりうまく機能します。user.config
アプリケーションを実行しているユーザーの下でアプリケーションの を見ると、設定が保存されています。ただし、次にアプリケーションをロードすると、保存された設定が無視され、デフォルトの設定が使用されるようです。もう一度、設定を変更して保存できますが、結果は同じです。はuser.config
更新されていますが、ロード時に表示されるのは常に古いデフォルト設定です。
設定を ListView に読み込みます。そこから値を変更し、ListView をループして、設定を再度保存します。
これは、ListView に設定をロードする場所です: (Properties.Main
は作成した設定です)
private void Settings_Load(object sender, EventArgs e)
{
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal);
textBox1.Text = config.FilePath;
foreach (SettingsProperty Setting in Properties.Main.Default.Properties)
{
ListViewItem settingitem = new ListViewItem();
settingitem.Text = Setting.Name.ToString();
settingitem.SubItems.Add(Setting.DefaultValue.ToString());
listView1.Items.Add(settingitem);
}
listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);
}
そして、ここに設定を保存します。
private void button1_Click(object sender, EventArgs e)
{
try
{
foreach (ListViewItem setting in listView1.Items)
{
Properties.Main.Default[setting.Text] = setting.SubItems[1].Text; ;
Properties.Main.Default.Save();
}
}
catch (Exception exp)
{
MessageBox.Show(exp.Message);
}
}
私が見る限り、設定はuser.config
ファイルに期待どおりに保存されていますが、次回は読み込まれません。
アプリケーションが毎回デフォルト設定をロードしないようにするために、何かする必要があるという印象を受けています。
何か案は?