在程序退出时保存系统属性

时间:2014-09-03 12:42:11

标签: c# wpf

一直在寻找,并且无法找到任何与我在这里尝试做的完全相关的事情。我在WPF应用程序中创建了一个名为' firstrun'的系统属性,这是一个bool。尝试让程序读取是否正确,然后在第一次运行程序时采取不同的行动。但是一旦关闭,就会把它设置为假。我的代码是这样的,每次运行程序时它仍然是正确的:

 public partial class MainWindow : Window
{

    bool firstRun = Properties.Settings.Default.FirstRun;

    public MainWindow()
    {
        InitializeComponent();
        if (firstRun)
        {
            MessageBox.Show("First run");
        }
        else
        {
            // Run rest of program
            MessageBox.Show("This is not the first run");
        }
    }

    private void windowClosing(object sender, System.ComponentModel.CancelEventArgs e)
    {
        this.firstRun = false;
        Settings.Default.Save();
    }


}
}

1 个答案:

答案 0 :(得分:3)

您在MainWindow成员中更改了值:

bool firstRun = Properties.Settings.Default.FirstRun;

您需要更改设置中的属性值(Properties.Settings.Default.FirstRun),然后像这样调用Settings.Default.Save():

private void windowClosing(object sender, System.ComponentModel.CancelEventArgs e)
{
   Properties.Settings.Default.FirstRun = false;
   Settings.Default.Save();
}

对于此功能,您必须将设置文件中的范围从“应用程序”更改为“用户”值。在用户范围属性中有getter和setter