退出C#自动保存设置

Max*_*ich 11 c# settings

在VB.NET中有一个选项"在退出时自动保存设置"在C#中有一个等价的选项还是需要编写以下代码?"

private void frmMain_FormClosing(object sender, FormClosingEventArgs e)
{
    Properties.Settings.Default.Save();
}
Run Code Online (Sandbox Code Playgroud)

Fun*_*eng 18

您可以改用ApplicationExit.

Application.ApplicationExit += new EventHandler(Application_ApplicationExit);

void Application_ApplicationExit(object sender, EventArgs e)
{
    Settings.Default.Save();
}
Run Code Online (Sandbox Code Playgroud)

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

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

void Default_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
    Settings.Default.Save();
}
Run Code Online (Sandbox Code Playgroud)

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

  • PropertyChanged很危险.如果程序随后死亡,由于保存的设置,它可能会在启动时再次死亡.您的用户永远无法再次启动它,该文件很难找到. (5认同)