2009-03-08 13 views
1

Ich habe ein WinForms-Benutzersteuerelement, das beim Hinzufügen zu einem Formular automatisch einige Elemente zu den Anwendungseinstellungen hinzufügen sollte. (Natürlich sollte der Benutzer dieses Verhalten anpassen/deaktivieren können.)Hinzufügen von Anwendungseinstellungen aus einer benutzerdefinierten Komponente (WinForms)

ist das ratsam? Was ist der "gute" Weg, dies zu tun?

[Bearbeiten]
Die Steuerung stellt eine Standardimplementierung für das Datei-Menü, nur der Verbraucher die Menü/Symbolleiste Elemente im Designer verkabeln muss und einige grundlegende Ereignisse zu implementieren. Ein Teil davon ist eine aktuelle Dateiliste, die standardmäßig gespeichert werden sollte.

Ich stimme zu, dass der Verbraucher die volle Kontrolle benötigt, ob diese Einstellungen automatisch hinzugefügt werden sollen oder nicht.

Bisher habe ich die Dateiliste als öffentliche String-Eigenschaft verfügbar gemacht, und der Consumer kann den Code zu init hinzufügen und diesen von/in der Anwendungskonfiguration speichern. Wenn möglich, möchte ich das weiter vereinfachen, so dass der Verbraucher nur die Einstellungsvariable zur Verfügung stellt, wo er die Einstellung speichern möchte (wenn er das überhaupt möchte).

Antwort

0

In Ihrem Steuer Konstruktor können Sie überprüfen (LicenseManager.UsageMode == LicenseUsageMode.Designtime) und dann überprüfen Sie die Konfigurationseinträge usw., aber ich denke, das ist eine schlechte Idee wäre

Ihre Kontrolle könnte Konfigurationseinträge unterstützen, wenn sie vorhanden sind , und haben ein Standardverhalten, wenn sie es nicht taten. Das scheint mehr akzeptabel für mich als Entwickler

Sie sollten entweder Weise können

Sie eine benutzerdefinierte Konfiguration Abschnitt verwenden, um einen benutzerdefinierten Konfigurationsabschnittshandler als Teil der Steuerung zur Verfügung stellen, so dass alle, die getan werden müssen, um Draht ist dies Abschnitt in der Konfigurationsdatei, wenn die Verwendung will

1

Ich glaube nicht, dass Ihr Steuerelement nichts zur Konfigurationsdatei hinzufügen sollte, es sei denn, es wurde gebeten, dies zu tun.

Noch, wenn der Benutzer "opt in", dann denke ich, dass Sie einige Designer-Unterstützung zu Ihrer Kontrolle hinzufügen müssen. Entweder über das ToolBoxItem oder über den Designer, der über ein hinzugefügtes neues Steuerelement benachrichtigt wird, muss der Designer die erforderlichen Konfigurationsinformationen erstellen und/oder aktualisieren.


Danke für die Klarstellung. Vielleicht möchten Sie IPersistControlSettings interface betrachten, vor allem, was es zum Thema ApplicationSettingsBase zu sagen hat. Diese Seite sollte Sie zu Informationen über stark typisierte Einstellungen in .NET 2.0 führen. Es ermöglicht das Übernehmen von Standardeinstellungen in einen Steuerelement- oder anderen Bibliothekscode. Wenn sich die Einstellungen ändern, bleiben die Änderungen in der Konfigurationsdatei der Anwendung erhalten, entweder pro Benutzer oder pro Anwendung.

+0

siehe bitte Erläuterung. – peterchen

0

Ich denke, es hängt davon ab, wie viel Wert Sie vom Verbraucher der Steuerung mit einer brauchbaren Erfahrung erhalten werden. Verkaufen Sie diese Kontrolle? Ist es für den internen Gebrauch? Der Aufwand, der erforderlich ist, um das Design-Zeiterlebnis zu schaffen, wäre wahrscheinlich untragbar, wenn dies für den internen Gebrauch vorgesehen ist.

+0

Es ist ein Spielzeug-Projekt - Ich habe mit Design-Zeit-Kontrollen fiedeln, mein größtes Problem ist die schlechte Dokumentation, aber ich habe keine Angst :) Siehe bitte Klarstellung. Vielen Dank. – peterchen

Verwandte Themen