head.WriteLine()

Samstag, April 08, 2006

Komponenten mit Smart Tags veredeln, Teil 3

Bei einigen Framework-Controls wird das Smart Tag-Window automatisch beim Einfügen auf die Form eingeblendet. So bekommt der Entwickler einen schnellen Überblick der Eigenschaften und kann ohne viel Geklicke die Komponente konfigurieren.

Wenn Sie dieses Verhalten auch in Ihrer Komponente umsetzen möchten, überschreiben Sie zunächst die InitializeNewComponent()-Methode Ihrer Designer-Klasse. Diese Methode wird aufgerufen, wenn die Komponente aus der Toolbox auf die Form gezogen wird.

Das Einblenden des Smart Tag-Windows können Sie nun über den DesignerActionUIService bewerkstelligen. Das folgende Beispiel zeigt die Implementierung:

public override void InitializeNewComponent(System.Collections.IDictionary defaultValues)
{
    base.InitializeNewComponent(defaultValues);

    DesignerActionUIService actionUIService =
        this.GetService(typeof(DesignerActionUIService)) as DesignerActionUIService;
    actionUIService.ShowUI(this.Component);
}


Hier wird über die GetService()-Methode der Designerbasisklasse eine vorhandene Instanz des Service ermittelt und über die ShowUI()-Methode das Window zur Anzeige gebracht.

Der gleiche Service kann übrigens auch verwendet werden, um das Fenster programmgesteuert zu schließen.