Einstellungen einer Applikation zu speichern ist mit .NET 2.0 einfacher denn je; Es ist sogar möglich, Eigenschaften nahezu automatisch zu speichern und wieder zurückzuladen. Die neue, automatisch generierte Settings-Klasse (Namespace Properties der Applikation) macht es möglich. Mit ihr können Sie festgelegte Einstellungen speichern und laden, wobei zwischen zwei verschiedenen Einstellungen unterschieden wird: Dem ApplicationScope und dem UserScope. Damit ein Benutzer nicht die Daten eines anderen Benutzers auslesen kann, werden diese nicht in der Konfigurationsdatei abgelegt, sondern in einer zweiten Datei im Benutzerverzeichnis gespeichert. Das geschieht vollautomatisch.
Daten, die gespeichert wurden, müssen auch wieder zurückgeschrieben werden, d.h. nach dem Laden wieder zur Verfügung stehen. Die Settings-Klasse bietet dafür pro Einstellung eine Eigenschaft, über die Sie auf den entsprechenden Wert zugreifen können. Zum Speichern eigener Eigenschaften klicken Sie doppelt auf die Datei Settings.settings im Projektmappenexplorer (sie befindet sich im Verzeichnis Properties). Es öffnet sich ein Editor, ähnlich eines Resourceneditors, in dem Sie die Werte und einen Namen für die Werte eintragen können. Anders als bei einer Resource können Sie hier zwischen verschiedenen Datentypen wählen; Es werden allerdings nicht alle Datentypen unterstützt, vor allem nicht selbst definierte.
Wollen Sie lediglich Eigenschaften speichern, können Sie dies noch viel komfortabler tun; Im Eigenschaftenfenster finden Sie eine Kategorie namens ApplicationSettings, darunter eine Kategorie PropertyBinding. In dieser können Sie Eigenschaften beliebiger Steuerelemente direkt an eine entsprechende Einstellung in der Konfigurationsdatei binden (bzw. festlegen, dass diese Eigenschaft gespeichert werden soll und unter welchem Namen sie gespeichert werden soll). Die Zuweisung beim Laden übernimmt das ApplicationSettings-Feature automatisch. Bleibt nun nur noch das Speichern und das Laden.
In C# können Sie dies direkt in der Methode Main() tun oder aber im Load-Ereignis des Hauptformulars (was sich bei gebundenen Eigenschaften empfiehlt, weil diese erst dort zugewiesen werden können). Das Speichern der Einstellungen übernehmen Sie beim Beenden des Programms, also entweder im Ereignis FormClosing oder dem Ereignis FormClosed des Hauptformulars.
private void FrmMain_FormClosing( object sender, FormClosingEventArgs e ) { Properties.Settings.Default.Save(); }
private void FrmMain_Load( object sender, EventArgs e ) { Properties.Settings.Default.Reload(); }
|