Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. |
Übersetzung
Original
|
ApplicationSettingsBase-Klasse
Fungiert als Basisklasse für das Ableiten konkreter Wrapperklassen, um das Anwendungseinstellungsfeature in Windows Forms-Anwendungen zu implementieren.
Assembly: System (in System.dll)
Der ApplicationSettingsBase-Typ macht die folgenden Member verfügbar.
| Name | Beschreibung | |
|---|---|---|
|
ApplicationSettingsBase() | Initialisiert eine Instanz der ApplicationSettingsBase-Klasse mit ihrem Standardzustand. |
|
ApplicationSettingsBase(IComponent) | Initialisiert mithilfe der angegebenen Besitzerkomponente eine Instanz der ApplicationSettingsBase-Klasse. |
|
ApplicationSettingsBase(String) | Initialisiert mithilfe des angegebenen Einstellungsschlüssels eine Instanz der ApplicationSettingsBase-Klasse. |
|
ApplicationSettingsBase(IComponent, String) | Initialisiert mithilfe der angegebenen Besitzerkomponente und des Einstellungsschlüssels eine Instanz der ApplicationSettingsBase-Klasse. |
| Name | Beschreibung | |
|---|---|---|
|
Context | Ruft den der Einstellungsgruppe zugeordneten Anwendungseinstellungskontext ab. (Überschreibt SettingsBase.Context.) |
|
IsSynchronized | Ruft einen Wert ab, der angibt, ob der Zugriff auf das Objekt synchronisiert (threadsicher) ist. (Von SettingsBase geerbt.) |
|
Item | Ruft den Wert der angegebenen Anwendungseinstellungseigenschaft ab oder legt diesen fest. (Überschreibt SettingsBase.Item[String].) |
|
Properties | Ruft die Auflistung der Einstellungseigenschaften im Wrapper ab. (Überschreibt SettingsBase.Properties.) |
|
PropertyValues | Ruft eine Auflistung von Eigenschaftswerten ab. (Überschreibt SettingsBase.PropertyValues.) |
|
Providers | Ruft die Auflistung der vom Wrapper verwendeten Anwendungseinstellungsanbieter ab. (Überschreibt SettingsBase.Providers.) |
|
SettingsKey | Ruft den Einstellungsschlüssel für die Anwendungseinstellungsgruppe ab oder legt ihn fest. |
| Name | Beschreibung | |
|---|---|---|
|
Equals(Object) | Bestimmt, ob das angegebene Object und das aktuelle Object gleich sind. (Von Object geerbt.) |
|
Finalize | Gibt einem Objekt Gelegenheit zu dem Versuch, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der automatische Speicherbereinigung freigegeben wird. (Von Object geerbt.) |
|
GetHashCode | Fungiert als Hashfunktion für einen bestimmten Typ. (Von Object geerbt.) |
|
GetPreviousVersion | Gibt den Wert der benannten Einstellungseigenschaft für die vorherige Version derselben Anwendung zurück. |
|
GetType | Ruft den Type der aktuellen Instanz ab. (Von Object geerbt.) |
|
Initialize | Initialisiert vom SettingsBase-Objekt verwendete interne Eigenschaften. (Von SettingsBase geerbt.) |
|
MemberwiseClone | Erstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.) |
|
OnPropertyChanged | Löst das PropertyChanged-Ereignis aus. |
|
OnSettingChanging | Löst das SettingChanging-Ereignis aus. |
|
OnSettingsLoaded | Löst das SettingsLoaded-Ereignis aus. |
|
OnSettingsSaving | Löst das SettingsSaving-Ereignis aus. |
|
Reload | Aktualisiert die Werte der Anwendungseinstellungseigenschaft aus dem permanenten Speicher. |
|
Reset | Stellt die beibehaltenen Anwendungseinstellungswerte mit den entsprechenden Standardeigenschaften wieder her. |
|
Save | Speichert die aktuellen Werte der Anwendungseinstellungseigenschaften. (Überschreibt SettingsBase.Save().) |
|
ToString | Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.) |
|
Upgrade | Aktualisiert Anwendungseinstellungen, um eine aktuellere Installation der Anwendung wiederzugeben. |
| Name | Beschreibung | |
|---|---|---|
|
PropertyChanged | Tritt ein, nachdem der Wert einer Anwendungseinstellungseigenschaft geändert wurde. |
|
SettingChanging | Tritt ein, bevor der Wert einer Anwendungseinstellungseigenschaft geändert wurde. |
|
SettingsLoaded | Tritt ein, nachdem die Anwendungseinstellungen vom Speicher abgerufen worden sind. |
|
SettingsSaving | Tritt ein, bevor Werte im Datenspeicher gespeichert werden. |
ApplicationSettingsBase fügt der SettingsBase-Klasse die folgenden Funktionen hinzu, die von webbasierten Anwendungen verwendet werden:
-
Die Fähigkeit, Attribute einer abgeleiteten Einstellungswrapperklasse zu erkennen. ApplicationSettingsBase unterstützt das für Wrapperklasseneigenschaften verwendete deklarative Modell, wie später beschrieben.
-
Zusätzliche Validierungsereignisse, mit denen Sie die Richtigkeit einzelner Einstellungen sicherstellen können.
In der Anwendungseinstellungsarchitektur für den Zugriff auf eine Gruppe von Einstellungseigenschaften, die Sie zum Ableiten einer konkreten Wrapperklasse von ApplicationSettingsBase benötigen. Die Wrapperklasse passt ApplicationSettingsBase folgendermaßen an:
-
Damit auf jede Einstellungseigenschaft zugegriffen werden kann, wird der Wrapperklasse eine entsprechende stark typisierte, öffentliche Eigenschaft hinzugefügt. Diese Eigenschaft verfügt über einen get-Accessor und einen set-Accessor für Lese-/Schreibanwendungseinstellungen, aber nur über einen get-Accessor für schreibgeschützte Einstellungen.
-
Angeeignete Attribute müssen auf die öffentlichen Eigenschaften der Wrapperklasse angewendet werden, um Eigenschaften der Einstellungseigenschaft anzugeben, z. B. den Bereich der Einstellung (Anwendung oder Benutzer), ob die Einstellung Roaming unterstützen soll, den Standardwert für die Einstellung, den zu verwendenden Einstellungsanbieter usw. Jede Eigenschaft muss ihren Bereich entweder mit ApplicationScopedSettingAttribute oder UserScopedSettingAttribute angeben. Die die Anwendung betreffenden Einstellungen sind schreibgeschützt, wenn der Standard-LocalFileSettingsProvider verwendet wird.
Die ApplicationSettingsBase-Klasse verwendet Reflektion, um diese Attribute zur Laufzeit zu erkennen. Die meisten dieser Informationen werden an die Einstellungsanbieterebene weitergegeben, die für Speicher, Dauerhaftigkeitsformat usw. verantwortlich ist.
Wenn eine Anwendung über mehrere Einstellungswrapperklassen verfügt, definiert jede Klasse eine Einstellungsgruppe. Jede Gruppe hat die folgenden Eigenschaften:
-
Eine Gruppe kann jede beliebige Anzahl oder jeden Typ von Eigenschafteneinstellungen enthalten.
-
Wenn der Gruppenname nicht explizit von der ergänzenden Wrapperklasse mit einem SettingsGroupNameAttribute festgelegt wird, wird ein Name automatisch generiert.
Standardmäßig verwenden alle clientbasierten Anwendungen den LocalFileSettingsProvider, um Speicher bereitzustellen. Wenn ein anderer Einstellungsanbieter gewünscht wird, muss die Wrapperklasse oder die Eigenschaft mit einem entsprechenden SettingsProviderAttribute ergänzt werden.
Weitere Informationen zur Verwendung von Anwendungseinstellungen finden Sie unter Anwendungseinstellungen für Windows Forms.
Im folgenden Codebeispiel wird die Verwendung von Anwendungseinstellungen veranschaulicht, um die folgenden Attribute des Hauptformulars beizubehalten: Speicherort, Größe, Hintergrundfarbe und Titelleistentext. Alle diese Attribute werden als einzelne Anwendungseinstellungseigenschaften in der FormSettings-Klasse mit den entsprechenden Namen FormLocation, FormSize, FormBackColor und FormText beibehalten. Außer FormText und Size sind alle an die zugeordneten Formulareigenschaften datengebunden und verfügen über einen Standardeinstellungswert, der mit DefaultSettingValueAttribute angewendet wird.
Das Formular enthält vier untergeordnete Steuerelemente mit den folgenden Namen und Funktionen:
-
Eine Schaltfläche mit dem Namen btnBackColor, die zum Anzeigen des allgemeinen Dialogfelds Farbe verwendet wird.
-
Eine Schaltfläche mit dem Namen btnReload, die zum Reload der Anwendungseinstellungen verwendet wird.
-
Eine Schaltfläche mit dem Namen btnReset, die zum Reset der Anwendungseinstellungen verwendet wird.
-
Ein Textfeld mit dem Namen tbStatus, das zum Anzeigen von Statusinformationen über das Programm verwendet wird.
Beachten Sie, dass nach jeder Ausführung der Anwendung ein zusätzlicher Punkt an den Titeltext des Formulars angehängt wird.
Für dieses Codebeispiel sind ein Formular mit einer ColorDialog-Klasse namens colorDialog1 sowie ein StatusStrip-Steuerelement mit einer ToolStripStatusLabel namens tbStatus erforderlich. Darüber hinaus sind drei Button-Objekte mit den Namen btnReload, btnReset und btnBackColor erforderlich.
partial class Form1 : Form { private FormSettings frmSettings1 = new FormSettings(); public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { this.FormClosing += new FormClosingEventHandler(Form1_FormClosing); //Associate settings property event handlers. frmSettings1.SettingChanging += new SettingChangingEventHandler( frmSettings1_SettingChanging); frmSettings1.SettingsSaving += new SettingsSavingEventHandler( frmSettings1_SettingsSaving); //Data bind settings properties with straightforward associations. Binding bndBackColor = new Binding("BackColor", frmSettings1, "FormBackColor", true, DataSourceUpdateMode.OnPropertyChanged); this.DataBindings.Add(bndBackColor); Binding bndLocation = new Binding("Location", frmSettings1, "FormLocation", true, DataSourceUpdateMode.OnPropertyChanged); this.DataBindings.Add(bndLocation); // Assign Size property, since databinding to Size doesn't work well. this.Size = frmSettings1.FormSize; //For more complex associations, manually assign associations. String savedText = frmSettings1.FormText; //Since there is no default value for FormText. if (savedText != null) this.Text = savedText; } private void Form1_FormClosing(object sender, FormClosingEventArgs e) { //Synchronize manual associations first. frmSettings1.FormText = this.Text + '.'; frmSettings1.FormSize = this.Size; frmSettings1.Save(); } private void btnBackColor_Click(object sender, EventArgs e) { if (DialogResult.OK == colorDialog1.ShowDialog()) { Color c = colorDialog1.Color; this.BackColor = c; } } private void btnReset_Click(object sender, EventArgs e) { frmSettings1.Reset(); this.BackColor = SystemColors.Control; } private void btnReload_Click(object sender, EventArgs e) { frmSettings1.Reload(); } void frmSettings1_SettingChanging(object sender, SettingChangingEventArgs e) { tbStatus.Text = e.SettingName + ": " + e.NewValue; } void frmSettings1_SettingsSaving(object sender, CancelEventArgs e) { //Should check for settings changes first. DialogResult dr = MessageBox.Show( "Save current values for application settings?", "Save Settings", MessageBoxButtons.YesNo); if (DialogResult.No == dr) { e.Cancel = true; } } } //Application settings wrapper class sealed class FormSettings : ApplicationSettingsBase { [UserScopedSettingAttribute()] public String FormText { get { return (String)this["FormText"]; } set { this["FormText"] = value; } } [UserScopedSettingAttribute()] [DefaultSettingValueAttribute("0, 0")] public Point FormLocation { get { return (Point)(this["FormLocation"]); } set { this["FormLocation"] = value; } } [UserScopedSettingAttribute()] [DefaultSettingValueAttribute("225, 200")] public Size FormSize { get { return (Size)this["FormSize"]; } set { this["FormSize"] = value; } } [UserScopedSettingAttribute()] [DefaultSettingValueAttribute("LightGray")] public Color FormBackColor { get { return (Color)this["FormBackColor"]; } set { this["FormBackColor"] = value; } } }
Windows 7, Windows Vista SP1 oder höher, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core wird nicht unterstützt), Windows Server 2008 R2 (Server Core wird mit SP1 oder höher unterstützt), Windows Server 2003 SP2
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.