Anwendungseinstellungen für benutzerdefinierte Steuerelemente
Sie müssen bestimmte Aufgaben ausführen, um Ihren benutzerdefinierten Steuerelementen die Möglichkeit zu geben, Anwendungseinstellungen beizubehalten, wenn die Steuerelemente in Drittanbieteranwendungen gehostet werden.
Die meisten Dokumentationen zum Feature "Anwendungseinstellungen" werden unter der Annahme geschrieben, dass Sie eine eigenständige Anwendung erstellen. Wenn Sie jedoch ein Steuerelement erstellen, das andere Entwickler in ihren Anwendungen hosten, müssen Sie einige zusätzliche Schritte ausführen, damit ihr Steuerelement seine Einstellungen ordnungsgemäß beibehalten kann.
Anwendungseinstellungen und benutzerdefinierte Steuerelemente
Damit Ihr Steuerelement seine Einstellungen ordnungsgemäß beibehalten kann, muss er den Prozess kapseln, indem er eine eigene dedizierte Anwendungseinstellungswrapperklasse erstellt, die von ApplicationSettingsBaseabgeleitet wird. Darüber hinaus muss die Hauptsteuerungsklasse die IPersistComponentSettingsimplementieren. Die Schnittstelle enthält mehrere Eigenschaften sowie zwei Methoden, LoadComponentSettings und SaveComponentSettings. Wenn Sie Ihr Steuerelement mithilfe des Windows Forms Designers in Visual Studio zu einem Formular hinzufügen, ruft Windows Forms LoadComponentSettings automatisch auf, wenn das Steuerelement initialisiert wird; Sie müssen SaveComponentSettings in der Dispose
Methode Ihres Steuerelements selbst aufrufen.
Darüber hinaus sollten Sie Folgendes implementieren, damit Anwendungseinstellungen für benutzerdefinierte Steuerelemente in Entwurfszeitumgebungen wie Visual Studio ordnungsgemäß funktionieren:
Eine benutzerdefinierte Anwendungseinstellungen-Klasse mit einem Konstruktor, der IComponent als einzigen Parameter akzeptiert. Verwenden Sie diese Klasse, um alle Anwendungseinstellungen zu speichern und zu laden. Wenn Sie eine neue Instanz dieser Klasse erstellen, übergeben Sie ein benutzerdefiniertes Steuerelement mithilfe des Konstruktors.
Erstellen Sie diese benutzerdefinierte Einstellungen-Klasse, nachdem das Steuerelement erstellt und in einem Formular platziert wurde, wie etwa im Ereignishandler Load des Formulars.
Anweisungen zum Erstellen einer benutzerdefinierten Einstellungsklasse finden Sie unter How to: Create Application Settings.
Einstellungsschlüssel und freigegebene Einstellungen
Einige Steuerelemente können mehrmals innerhalb desselben Formulars verwendet werden. Meistens möchten Sie, dass diese Steuerelemente ihre eigenen individuellen Einstellungen beibehalten. Mit der SettingsKey-Eigenschaft für IPersistComponentSettingskönnen Sie eine eindeutige Zeichenfolge angeben, um mehrere Versionen eines Steuerelements in einem Formular zu unterscheiden.
Die einfachste Möglichkeit, SettingsKey zu implementieren, ist, die Eigenschaft Name des Steuerelements für die SettingsKeyzu verwenden. Wenn Sie die Einstellungen des Steuerelements laden oder speichern, übergeben Sie den Wert von SettingsKey an die SettingsKey-Eigenschaft der ApplicationSettingsBase Klasse. Anwendungseinstellungen verwendet diesen eindeutigen Schlüssel, wenn die Einstellungen des Benutzers in XML gespeichert werden. Das folgende Codebeispiel zeigt, wie ein <userSettings>
-Abschnitt für eine Instanz eines benutzerdefinierten Steuerelements namens CustomControl1
aussieht, das eine Einstellung für seine 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, verwenden dieselben Einstellungen.
Siehe auch
.NET Desktop feedback