In Visual Basic, l'obiettivo principale del salvataggio dello stato del modulo (dimensione, posizione, valori dei campi) tra le sessioni è la registrazione dei dati in una fonte esterna (file, registro, impostazioni utente) alla chiusura e il ripristino all'avvio.
Approcci:
Esempio di utilizzo di My.Settings:
' Salvataggio dello stato 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 ' Ripristino dello stato 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
Le impostazioni possono essere aggiunte tramite il designer o manualmente.
Particolarità:
È possibile salvare un oggetto non standard (ad esempio, DataTable) tramite My.Settings? Come si implementa correttamente?
Risposta: Sì, ma l'impostazione deve essere di tipo User e l'oggetto deve supportare la serializzazione. Per DataTable o oggetti complessi, My.Settings salva la versione serializzata in formato Binario/XML. È necessario implementare il supporto per la serializzazione o utilizzare la registrazione manuale tramite il serializzatore.
Storia
Nell'applicazione veniva salvato lo stato del modulo nel registro di Windows. Dopo alcuni aggiornamenti, gli utenti hanno perso l'accesso alle impostazioni a causa delle limitazioni dei diritti, il che ha portato a un gran numero di richieste di supporto. Soluzione — passaggio a My.Settings nei profili utente.
Storia
Senza controllare le coordinate della posizione della finestra all'avvio, l'applicazione veniva visualizzata al di fuori dell'area visibile dello schermo (cambiato il secondo monitor). Ora è stata aggiunta una logica di verifica dei confini del desktop durante il ripristino della posizione del modulo.
Storia
Durante l'aggiornamento da una versione precedente dell'applicazione, gli sviluppatori non hanno garantito il trasferimento delle impostazioni utente (moduli e campi annidati). Risultato — perdita di dati e insoddisfazione degli utenti. È stata adottata una politica di supporto per la migrazione delle versioni delle impostazioni con controllo della compatibilità.