Anwendungseinstellungen für benutzerdefinierte Steuerelemente
Sie müssen bestimmte Aufgaben ausführen, damit die benutzerdefinierten Steuerelemente in den Anwendungseinstellungen erhalten bleiben, wenn die Steuerelemente in Anwendungen von Drittanbietern gehostet werden.
Der Großteil der Dokumentation über das Feature Anwendungseinstellungen wird in der Annahme geschrieben, dass Sie eine eigenständige Anwendung erstellen. Wenn Sie aber ein Steuerelement erstellen, das von anderen Entwicklern in deren Anwendungen gehostet wird, müssen Sie einige zusätzliche Schritte beachten, damit die Einstellungseigenschaft des Steuerelements erhalten bleibt.
Anwendungseinstellungen und benutzerdefinierte Steuerelemente
Damit die Einstellungen des Steuerelements erhalten bleiben, muss es den Prozess kapseln, indem es eine eigene Wrapperklasse für dedizierte Anwendungseinstellungen erstellt, die von ApplicationSettingsBase abgeleitet ist. Zusätzlich muss die Hauptsteuerelementklasse IPersistComponentSettings implementieren. Die Schnittstelle enthält mehrere Eigenschaften sowie zwei Methoden, nämlich LoadComponentSettings und SaveComponentSettings. Wenn Sie das Steuerelement dem Formular mit dem Windows Forms-Designer in Visual Studio hinzufügen, ruft Windows Forms LoadComponentSettings automatisch auf, wenn das Steuerelement initialisiert wird. Sie müssen SaveComponentSettings in der Dispose -Methode des Steuerelements selbst aufrufen.
Zusätzlich sollten Sie die folgenden Elemente implementieren, sodass die Anwendungseinstellungen für benutzerdefinierte Steuerelemente in Entwurfszeitumgebungen wie Visual Studio ordnungsgemäß funktionieren:
Eine benutzerdefinierte Anwendungseinstellungsklasse mit einem Konstruktor, der eine IComponent als einzelnen Parameter verwendet. Mit dieser Klasse können Sie alle Anwendungseinstellungen speichern und laden. Wenn Sie eine neue Instanz dieser Klasse erstellen, übergeben Sie das benutzerdefinierte Steuerelement mithilfe des Konstruktors.
Erstellen Sie diese benutzerdefinierte Einstellungsklasse, nachdem das Steuerelement erstellt und in einem Formular platziert wurde, z. B. im Load-Ereignishandler des Formulars.
Anweisungen zum Erstellen einer benutzerdefinierten Einstellungsklasse finden Sie unter Gewusst wie: Erstellen von Anwendungseinstellungen.
Einstellungsschlüssel und freigegebene Einstellungen
Einige Steuerelemente können im gleichen Formular mehrfach verwendet werden. In der Regel sollen die Einstellungen dieser Steuerelemente erhalten bleiben. Mithilfe der SettingsKey-Eigenschaft von IPersistComponentSettings können Sie eine eindeutige Zeichenfolge bereitstellen, mit der Sie mehrere Versionen eines Steuerelements auf einem Formular eindeutig machen können.
Die einfachste Art, SettingsKey zu implementieren, besteht darin, die Name-Eigenschaft des Steuerelements für den SettingsKey zu verwenden. Wenn Sie die Einstellungen des Steuerelements laden oder speichern, übernehmen Sie den SettingsKey-Wert für die SettingsKey-Eigenschaft der ApplicationSettingsBase-Klasse. Anwendungseinstellungen verwenden diesen eindeutigen Schlüssel, wenn die Einstellungen des Benutzers in XML erhalten bleiben. Im folgenden Codebeispiel wird gezeigt, wie ein <userSettings> -Abschnitt für ein benutzerdefiniertes Steuerelement mit dem Namen CustomControl1 aussehen könnte, das eine Einstellung für die Text -Eigenschaft speichert.
<userSettings>
<CustomControl1>
<setting name="Text" serializedAs="string">
<value>Hello, World</value>
</setting>
</CustomControl1>
</userSettings>
Alle Instanzen eines Steuerelements, die keinen Wert für SettingsKey bereitstellen, verfügen über die gleichen Einstellungen.