退出C#自动保存设置

时间:2011-03-08 02:42:39

标签: c# settings

在VB.NET中有一个选项“在退出时自动保存设置”在C#中是否有相同的选项,或者是否需要编写以下代码?“

private void frmMain_FormClosing(object sender, FormClosingEventArgs e)
{
    Properties.Settings.Default.Save();
}

4 个答案:

答案 0 :(得分:16)

您可以改用ApplicationExit。

Application.ApplicationExit += new EventHandler(Application_ApplicationExit);

void Application_ApplicationExit(object sender, EventArgs e)
{
    Settings.Default.Save();
}

或者,您也可以保存每项更改:

Settings.Default.PropertyChanged += new PropertyChangedEventHandler(Default_PropertyChanged);

void Default_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
    Settings.Default.Save();
}

警告:如果您使用第二种方法,请考虑@Hans Passant的评论

答案 1 :(得分:1)

你也可以这样做。如果您使用的是Windows窗体,请在设计视图的“属性”窗格中打开“事件”选项卡,然后向下滚动直至看到“关闭事件”,然后双击它。

接下来,只需添加下面显示的代码。

private void Form1_Closing(object sender, EventArgs e)
{
    Properties.Settings.Default.Save();
}

答案 2 :(得分:0)

是的,就是这样。我更喜欢在表单级别处理保存,重置和重新加载,因为这些设置在应用程序中共享。在FormCancel上调用.Reset()为用户做了正确的事情,并在表单关闭时调用.Save()。如果应用程序在该点之后崩溃,则会保留设置。我认为在AppStart / Exit上保存并不能在适当的时间为用户做正确的事情。

Settings.Default.Save();

其他有趣的方法:

.Upgrade();

.Reset();

.Reload();

答案 3 :(得分:-2)

根据这个article,它完全相同