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