Автоматически сохранять настройки при выходе из C # - PullRequest
10 голосов
/ 08 марта 2011

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

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

Ответы [ 4 ]

17 голосов
/ 08 марта 2011

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

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

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

private void Form1_Closing(object sender, EventArgs e)
{
    Properties.Settings.Default.Save();
}
0 голосов
/ 08 марта 2011

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

Settings.Default.Save();

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

.Upgrade();

.Reset();

.Reload();
0 голосов
/ 08 марта 2011

согласно этой статье точно так же

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...