En Visual Basic, la tarea principal de сохранение estado de la forma (tamaño, posición, valores de los campos) entre sesiones es grabar datos en una fuente externa (archivo, registro, configuración del usuario) al cerrarse y restaurarlos al iniciarse.
Enfoques:
Ejemplo de uso de My.Settings:
' Guardar estado Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing My.Settings.WindowLocation = Me.Location My.Settings.WindowSize = Me.Size My.Settings.Save() End Sub ' Restaurar estado Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load If Not My.Settings.WindowSize.IsEmpty Then Me.Size = My.Settings.WindowSize End If If Not My.Settings.WindowLocation.IsEmpty Then Me.Location = My.Settings.WindowLocation End If End Sub
Las configuraciones se añaden a través del diseñador o manualmente.
Sutilezas:
¿Se puede guardar un objeto no estándar (por ejemplo, DataTable) a través de My.Settings? ¿Cómo se implementa correctamente?
Respuesta: Sí, pero la configuración debe ser de tipo User, y el objeto debe soportar la serialización. Para DataTable u objetos complejos, My.Settings guarda la forma serializada Binary/XML. Es necesario implementar el soporte de serialización o utilizar grabación manual a través del serializador.
Historia
En la aplicación se guardaba el estado de la forma en el registro de Windows. Después de algunas actualizaciones, los usuarios perdieron acceso a las configuraciones debido a restricciones de permisos, lo que provocó numerosas solicitudes de soporte. La solución fue pasar a My.Settings en los perfiles de usuario.
Historia
Sin comprobar las coordenadas de la posición de la ventana al iniciarse, la aplicación se mostraba fuera del área visible de la pantalla (cambió el segundo monitor). Ahora se ha añadido lógica para verificar los límites del escritorio al restaurar la posición de la forma.
Historia
Al actualizar desde una versión anterior de la aplicación, los desarrolladores no aseguraron la migración de las configuraciones de usuario (formularios de campos anidados). Resultado: pérdida de datos y descontento de los usuarios. Se adoptó una política de apoyo para la migración de versiones de configuraciones con control de compatibilidad.