2

私は設定を使用するこの評価者の単純なアプリケーションを持っています。そのために、独自のプロパティ設定ファイルを作成しました。ここまでは順調ですね。それはすべてうまくいきます。設定はそこにあり、私はそれらを使用できます。

これらの設定を実行時に変更できるようにしています。見た目からして、それもかなりうまく機能します。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ファイルに期待どおりに保存されていますが、次回は読み込まれません。

アプリケーションが毎回デフォルト設定をロードしないようにするために、何かする必要があるという印象を受けています。

何か案は?

4

1 に答える 1

0

ConfigurationManager.RefreshSection を試しましたか

于 2012-06-13T03:43:01.380 に答える