Автоматическое сохранение настроек при выходе C#

In VB.NET существует опция "автоматическое сохранение настроек при выходе" есть ли эквивалентная опция в C# или нужно написать следующий код?"

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

4 ответов


вместо этого вы можете использовать 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


вы можете сделать это таким образом, тоже. Если вы используете Windows Forms, откройте вкладку события на панели Свойства в режиме конструктора для формы,которую вы хотите использовать, и прокрутите вниз, пока не увидите событие закрытия, а затем дважды щелкните его.

далее, просто добавьте код, показанный ниже.

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

Да, это оно. Я предпочитаю обрабатывать сохранение, сброс, перезагрузку на уровне формы, потому что настройки совместно используются в приложении. Зовущий.Reset () на FormCancel делает правильную вещь для пользователя, а также вызывает .Сохранить() при закрытии формы. Если приложение аварийно завершает работу после этого момента, настройки сохраняются. Я думаю, что экономия на AppStart / Exit не делает правильную вещь для пользователя в нужное время.

Settings.Default.Save();

другие интересные методы:

.Upgrade();

.Reset();

.Reload();

по этому статьи это точно то же самое