head.WriteLine()

Montag, Oktober 02, 2006

Entwurfszeit-Attribute, Teil 1: Interaktion mit Visual Studio

Komponenten in der Code-Ansicht öffnen
Für Komponenten, Controls und Forms bietet Visual Studio einen eigenen Designer, der automatisch geöffnet wird, wenn Sie im Solution Explorer einen Doppelklick auf die entsprechende Datei machen. Oftmals wollen Sie jedoch lediglich in die Code-Ansicht. Nun können Sie dies zwar auch über die entsprechende Schaltfläche im Solution Explorer-Windows erreichen, ein Doppelklick ist jedoch um einiges schneller. Glücklicherweise existiert über das DesignerCategory-Attribut die Möglichkeit, das Standardverhalten anzupassen, wie das folgende Beispiel zeigt:

[System.ComponentModel.DesignerCategory("Code")]
public class MyComponent : Component
{
...
}

Hierbei ist es wichtig das Attribut stets mit dem kompletten Namespace zu notieren, die Kurzform ignoriert Visual Studio.

Eigenschaften zur Entwurfszeit verbergen
Ob eine Eigenschaft zur Entwurfszeit im Eigenschaftenfenster sichbar ist, kann über das Browsable-Attribut gesteuert werden. Möchten Sie darüber hinaus auch verhindern, dass der Entwickler die Eigenschaft in seiner IntelliSense-Liste zu Gesicht bekommt, setzen Sie zusätzlich das EditorBrowsable-Attribut mit dem Wert EditorBrowsableState.Never.

[Browsable(false)]
[EditorBrowsable(EditorBrowsableState.Never)]
public string MyProperty
{
...
}

Komponenten zur Entwurfszeit verbergen
Vielleicht wollen Sie aber auch die komplette Komponente verbergen, sprich sie soll nicht in der Toolbox erscheinen. Hierfür deklarieren Sie auf Klassenebene das ToolboxVisible-Attribut.

[ToolboxItem(false)]
public class MyComponent : Component
{
...
}

Soll die Komponente zwar in der Toolbox erscheinen, nicht jedoch im Component Tray, so setzen Sie das DesignTimeVisible-Attribut auf false.

[DesignTimeVisible(false)]
public class MyComponent : Component
{
...
}