Freigeben über


Gewusst wie: Erstellen von Anwendungseinstellungen

Mithilfe von verwaltetem Code können Sie neue Anwendungseinstellungen erstellen und diese an Eigenschaften auf dem Formular oder an Steuerelemente des Formulars binden, sodass diese Einstellungen zur Laufzeit automatisch geladen und gespeichert werden.

In der folgenden Prozedur erstellen Sie manuell eine Wrapperklasse, die sich von ApplicationSettingsBase ableitet. Dieser Klasse fügen Sie eine öffentlich zugreifbare Eigenschaft für jede Anwendungseinstellung hinzu, die Sie verfügbar machen möchten.

Dieses Verfahren können Sie auch im Visual Studio-Designer mit minimalem Programmieraufwand durchführen. Weitere Informationen finden Sie unter Gewusst wie: Erstellen von Anwendungseinstellungen mithilfe des Designers und Gewusst wie: Erstellen von Anwendungseinstellungen mithilfe des Designers und Gewusst wie: Erstellen von Anwendungseinstellungen mithilfe des Designers und Gewusst wie: Erstellen von Anwendungseinstellungen mithilfe des Designers und Gewusst wie: Erstellen von Anwendungseinstellungen mithilfe des Designers.

So erstellen Sie programmgesteuert neue Anwendungseinstellungen

  1. Fügen Sie dem Projekt eine neue Klasse hinzu, und benennen Sie sie um. In dieser Prozedur nennen wir die Klasse MyUserSettings. Ändern Sie die Klassendefinition, sodass sich die Klasse von ApplicationSettingsBase ableitet.

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

    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
    
    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;
            }
        }
    }
    
  3. Erstellen Sie in der Anwendung eine Instanz dieser Wrapperklasse. Hierbei handelt es sich im Allgemeinen um einen privaten Member des Hauptformulars. Nachdem Sie die Klasse definiert haben, müssen Sie sie an eine Eigenschaft binden, in diesem Fall an die BackColor-Eigenschaft des Formulars. Hierzu können Sie den Load -Ereignishandler des Formulars verwenden.

    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
    
    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"));
    }
    
  4. Wenn Sie eine Möglichkeit bereitstellen, Einstellungen zur Laufzeit zu ändern, müssen Sie die aktuellen Einstellungen des Benutzers auf der Festplatte speichern, wenn Sie das Formular schließen. Andernfalls gehen diese Änderungen verloren.

    Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        Mus.Save()
    End Sub
    
        //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();
            }
    

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

Sicherheit

Der standardmäßige Einstellungenanbieter LocalFileSettingsProvider erhält Informationen in Konfigurationsdateien als Nur-Text. Dadurch wird die Sicherheit auf die für den aktuellen Benutzer vom Betriebssystem bereitgestellte Dateizugriffssicherheit beschränkt. Daher sollten die in Konfigurationsdateien gespeicherten Informationen mit Vorsicht verwendet werden. Eine häufige Verwendung von Anwendungseinstellungen besteht zum Beispiel darin, Verbindungszeichenfolgen zu speichern, die auf den Datenspeicher der Anwendung zeigen. Aus Sicherheitsgründen sollten solche Zeichenfolgen jedoch keine Kennwörter enthalten. Weitere Informationen über Verbindungszeichenfolgen finden Sie unter SpecialSetting.

Siehe auch

Aufgaben

Gewusst wie: Überprüfen von Anwendungseinstellungen

Referenz

SpecialSettingAttribute

LocalFileSettingsProvider

Konzepte

Übersicht über Anwendungseinstellungen