In Visual Basic is de belangrijkste taak bij het opslaan van de status van een formulier (grootte, positie, veldwaarden) tussen sessies het schrijven van gegevens naar een externe bron (bestand, register, gebruikersinstellingen) bij het sluiten en het herstellen bij het opstarten.
Benaderingen:
Voorbeeld van het gebruik van My.Settings:
' Opslaan van status 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 ' Herstellen van status 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
Instellingen worden toegevoegd via de designer of handmatig.
Nuances:
Kan een niet-standaard object (bijvoorbeeld DataTable) worden opgeslagen via My.Settings? Hoe implementeer je dit correct?
Antwoord: Ja, maar de instelling moet van het type User zijn, en het object moet serialisatie ondersteunen. Voor DataTable of complexe objecten slaat My.Settings de geserialiseerde Binary/XML-vorm op. Het is nodig om ondersteuning voor serialisatie te implementeren of handmatige opslag via een serializer te gebruiken.
Geschiedenis
In de applicatie werd de status van het formulier in het Windows-register opgeslagen. Na enkele updates verloren gebruikers de toegang tot de instellingen vanwege rechtenbeperkingen, wat leidde tot massale ondersteuning aanvragen. Oplossing — overstappen op My.Settings in gebruikers profielen.
Geschiedenis
Zonder controle van de coördinaten van de vensterpositie bij het opstarten werd de applicatie buiten het zichtbare gebied van het scherm weergegeven (de tweede monitor was veranderd). Nu is er logica toegevoegd om de grenzen van de werkruimte te controleren bij het herstellen van de positie van het formulier.
Geschiedenis
Bij de update van een oude versie van de applicatie zorgden de ontwikkelaars er niet voor dat gebruikersinstellingen (geneste velden van formulieren) werden overgebracht. Resultaat — verlies van gegevens en ontevredenheid onder gebruikers. Er is beleid aangenomen voor het ondersteunen van versie migratie van instellingen met compatibiliteitscontrole.