2011-03-08 37 views

Respuesta

14

usted podría utilizar ApplicationExit lugar.

Application.ApplicationExit += new EventHandler(Application_ApplicationExit); 

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

Como alternativa, también se puede ahorrar en cada cambio:

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

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

Advertencia: si utiliza el segundo método, tenga en cuenta los comentarios de @Hans Passant

+0

Creo que guardar las propiedades en cada cambio hace que las interacciones del usuario sean un poco incómodas, especialmente si les permite cancelar su interacción. Guardar cuando el usuario cierra un formulario, cancela, carga algún subsistema proporciona una mejor experiencia global. –

+0

Gracias por su ayuda ... PD: Estoy inclinado a estar de acuerdo con Ritch pero me gusta applicationExit better. –

+2

PropertyChanged es peligroso. Si el programa posteriormente muere, puede morir nuevamente al inicio debido a la configuración guardada. Tu usuario nunca puede volver a comenzar, el archivo es muy difícil de encontrar. –

-2

de acuerdo con esto article es exactamente el mismo

+0

... excepto que no es así. La pregunta original preguntaba cómo guardar configuraciones automáticamente al salir. –

0

Sí, eso es todo. Prefiero manejar guardar, restablecer, volver a cargar en el nivel del formulario porque la configuración se comparte en la aplicación. Llamar .Reset() en FormCancel hace lo correcto para el usuario, así como para llamar a .Save() cuando se cierra el formulario. Si la aplicación falla después de ese punto, la configuración se conserva. Creo que guardar en la aplicación Start/Exit no hace lo correcto para el usuario en el momento correcto.

Settings.Default.Save(); 

Otros métodos interesantes:

.Upgrade(); 

.Reset(); 

.Reload(); 
1

Usted puede hacerlo de esta demasiado. Si usa Windows Forms, abra la pestaña Eventos desde el Panel de Propiedades en la Vista de Diseño para el Formulario que desea usar, desplácese hacia abajo hasta que vea el Evento de Cierre y luego haga doble clic en él.

A continuación, solo agregue el código que se muestra a continuación.

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