Freigeben über


Vorgehensweise: Erstellen von Anwendungseinstellungen

Mithilfe von verwaltetem Code können Sie neue Anwendungseinstellungen erstellen und an Eigenschaften in Ihrem Formular oder den Steuerelementen Des Formulars binden, sodass diese Einstellungen zur Laufzeit automatisch geladen und gespeichert werden.

Im folgenden Verfahren erstellen Sie manuell eine Wrapperklasse, die von ApplicationSettingsBaseabgeleitet wird. Zu dieser Klasse fügen Sie eine öffentlich zugängliche Eigenschaft für jede Anwendungseinstellung hinzu, die Sie verfügbar machen möchten.

Sie können dieses Verfahren auch mit minimalem Code im Visual Studio-Designer ausführen. Weitere Informationen finden Sie außerdem unter Erstellen von Anwendungseinstellungen mithilfe des Designers.

So erstellen Sie programmgesteuert neue Anwendungseinstellungen

  1. Fügen Sie Ihrem Projekt eine neue Klasse hinzu, und benennen Sie sie um. Für dieses Verfahren werden wir diese Klasse MyUserSettingsnennen. Ändern Sie die Klassendefinition so, dass die Klasse von ApplicationSettingsBaseabgeleitet wird.

  2. Definieren Sie eine Eigenschaft für diese Wrapperklasse für jede benötigte Anwendungseinstellung, und wenden Sie diese Eigenschaft mit ApplicationScopedSettingAttribute oder mit UserScopedSettingAttribute, abhängig vom Bereich der Einstellung an. Weitere Informationen zum Einstellungsbereich finden Sie unter Übersicht über Anwendungseinstellungen. Der Code sollte nun wie folgt aussehen:

    using System;
    using System.Configuration;
    using System.Drawing;
    
    public class MyUserSettings : ApplicationSettingsBase
    {
        [UserScopedSetting()]
        [DefaultSettingValue("white")]
        public Color BackgroundColor
        {
            get
            {
                return ((Color)this["BackgroundColor"]);
            }
            set
            {
                this["BackgroundColor"] = (Color)value;
            }
        }
    }
    
    Imports System.Configuration
    
    Public Class MyUserSettings
        Inherits ApplicationSettingsBase
        <UserScopedSetting()> _
        <DefaultSettingValue("white")> _
        Public Property BackgroundColor() As Color
            Get
                BackgroundColor = Me("BackgroundColor")
            End Get
    
            Set(ByVal value As Color)
                Me("BackgroundColor") = value
            End Set
        End Property
    End Class
    
  3. Erstellen Sie eine Instanz dieser Wrapperklasse in Ihrer Anwendung. Es wird in der Regel ein privates Element des Hauptformulars sein. Nachdem Sie Ihre Klasse definiert haben, müssen Sie sie an eine Eigenschaft binden; in diesem Fall die BackColor-Eigenschaft Ihres Formulars. Sie können dies im Load-Ereignishandler des Formulars erreichen.

    MyUserSettings mus;
    
    private void Form1_Load(object sender, EventArgs e)
    {
        mus = new MyUserSettings();
        mus.BackgroundColor = Color.AliceBlue;
        this.DataBindings.Add(new Binding("BackColor", mus, "BackgroundColor"));
    }
    
    Dim Mus As MyUserSettings
    
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Mus = New MyUserSettings()
        Mus.BackgroundColor = Color.AliceBlue
        Me.DataBindings.Add(New Binding("BackColor", Mus, "BackgroundColor"))
    End Sub
    
  4. Wenn Sie eine Möglichkeit zum Ändern von Einstellungen zur Laufzeit bereitstellen, müssen Sie die aktuellen Einstellungen des Benutzers beim Schließen des Formulars auf dem Datenträger speichern, sonst gehen diese Änderungen verloren.

    //Make sure to hook up this event handler in the constructor!
    //this.FormClosing += new FormClosingEventHandler(Form1_FormClosing);
        void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            mus.Save();
        }
    
    Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        Mus.Save()
    End Sub
    

    Sie haben nun erfolgreich eine neue Anwendungseinstellung erstellt und an die angegebene Eigenschaft gebunden.

Das folgende Beispiel zeigt eine Anwendungseinstellungsdatei, die zwei anwendungsspezifische Einstellungen und zwei benutzerspezifische Einstellungen definiert. Sie müssen die Namen für Einstellungen hinzufügen, die Sie als Einträge unter dem <configSections> Element am Anfang der Datei erstellt haben.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
      <section name="WindowsApplication1.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
    </sectionGroup>
    <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
      <section name="WindowsApplication1.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" />
    </sectionGroup>
  </configSections>
  <applicationSettings>
    <WindowsApplication1.Properties.Settings>
      <setting name="Cursor" serializeAs="String">
        <value>Default</value>
      </setting>
      <setting name="DoubleBuffering" serializeAs="String">
        <value>False</value>
      </setting>
    </WindowsApplication1.Properties.Settings>
  </applicationSettings>
  <userSettings>
    <WindowsApplication1.Properties.Settings>
      <setting name="FormTitle" serializeAs="String">
        <value>Form1</value>
      </setting>
      <setting name="FormSize" serializeAs="String">
        <value>595, 536</value>
      </setting>
    </WindowsApplication1.Properties.Settings>
  </userSettings>
</configuration>

.NET Framework Sicherheit

Der Standardeinstellungsanbieter (LocalFileSettingsProvider) speichert Informationen in Konfigurationsdateien als Nur-Text persistent. Dadurch wird die Sicherheit auf die vom Betriebssystem für den aktuellen Benutzer bereitgestellte Sicherheit des Dateizugriffs beschränkt. Deshalb sollte mit den in Konfigurationsdateien gespeicherten Informationen vorsichtig umgegangen werden. Eine häufige Verwendung für Anwendungseinstellungen besteht beispielsweise darin, Verbindungszeichenfolgen zu speichern, die auf den Datenspeicher der Anwendung verweisen. Aufgrund von Sicherheitsbedenken sollten solche Zeichenfolgen jedoch keine Kennwörter enthalten. Weitere Informationen zu Verbindungszeichenfolgen finden Sie unter SpecialSetting.

Weitere Informationen