Positionieren einer Form zur Laufzeit mithilfe von Anwendungseinstellungen unter VB.Net (Teil 1)
Wer kennt das nicht: Da hat man sein Progamm auf die richtige Größe und an den richtgen Platz gezogen und beim nächsten Programmstart – Batsch – öffnet es sich wieder an seinem ursprünglichen Platz und in der Original-Größe. Schade eigentlich, doch das muss nicht sein. Ich zeige Ihnen hier, wie einfach es unter VB.Net ist, mithilfe der Anwendungseinstellungen und My.Settings
eine Form korrekt zu positionieren.
Der einfachste Weg besteht darin, mit sogenannten Anwendungseinstellungen zu arbeiten. Anwendungseinstellungen ermöglichen ein dynamisches Speichern von Informationen zur Laufzeit. Aber Obacht: Die Daten werden in einer “einfachen” Text- bzw. Xml-Datei gespeichert. Passwörter, Zugangsdaten und ähnliches sollten Sie dort nicht speichern!
Der Zugriff erfolgt über My.Settings
und den unter Anwendungsdaten erstellten Namen der Einstellung. Im Load-Ereignis
der Form werden die Einstellungen abgerufen und zugeordnet, im FormClosing-Ereignis
logischerweise gespeichert.
Aber wo findet man diese Einstellungen? Im Menü unter <Projekt><Anwendungsname-Eigenschaften>
Dort legt man sich dann die benötigten Einstellungen an.
Ich habe den Programmcode von VB.Net in eine Klasse namens cKonfig.vb gepackt. Im Load-Ereignis rufe ich dann einfach cKonfig.subSetPosition(Me)
auf um die Form korrekt zu positionieren. Wird die Form geschlossen erfolgt der Aufruf über cKonfig.subSavePosition(Me)
und die aktuellen Daten werden in den Anwendungseinstellungen gespeichert.
Den Code finden Sie im zweiten Teil
Für eine Form ist dieser Weg sicher gangbar und effektiv. Aber wenn Sie zwei oder mehr Formen haben, wird es schon aufwendiger. Sie müssen für jede Form 4 Anwendungseinstellungen einrichten, entsprechend benennen und in CKonfig
in den Methoden subSetPosition
und subSavePosition
einen Select Case
einbauen, um die richtigen Einstellungen abzurufen. Aber auch hier gibt es eine Lösung. Die verate ich Ihnen dann im dritten Teil, der demnächst folgt.
Leave a Reply