Freigeben über


Gewusst wie: Ausführen von benutzerdefinierter Initialisierung für Steuerelemente im Entwurfsmodus

Mithilfe des benutzerdefinierten Designers können Sie Komponenten und Steuerelemente initialisieren, während sie durch die Entwurfsumgebung erstellt werden.

Beispiel

Im folgenden Codebeispiel wird veranschaulicht, wie Sie ein Steuerelement während seiner Erstellung durch die Entwurfsumgebung initialisieren können. Die Erstellung erfolgt, wenn Sie eine Instanz des Steuerelements auf das Formular ziehen und ebenfalls dann, wenn Sie den Designer für das Formular starten. Eine vollständige Erläuterung dieses Codebeispiels finden Sie unter Gewusst wie: Erweitern der Darstellung und des Verhaltens von Steuerelementen im Entwurfsmodus.

' This demonstrates changing the appearance of a control while
' it is being designed. In this case, the BackColor property is
' set to LightBlue. 
Public Overrides Sub InitializeNewComponent( _
ByVal defaultValues As IDictionary)

    MyBase.InitializeNewComponent(defaultValues)

    Dim colorPropDesc As PropertyDescriptor = _
    TypeDescriptor.GetProperties(Component)("BackColor")

    If colorPropDesc IsNot Nothing AndAlso _
       colorPropDesc.PropertyType Is GetType(Color) AndAlso _
       Not colorPropDesc.IsReadOnly AndAlso _
       colorPropDesc.IsBrowsable Then
        colorPropDesc.SetValue(Component, Color.LightBlue)
    End If
End Sub
// This demonstrates changing the appearance of a control while
// it is being designed. In this case, the BackColor property is
// set to LightBlue. 

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

    PropertyDescriptor colorPropDesc = 
        TypeDescriptor.GetProperties(Component)["BackColor"];

    if (colorPropDesc != null &&
        colorPropDesc.PropertyType == typeof(Color) &&
        !colorPropDesc.IsReadOnly &&
        colorPropDesc.IsBrowsable)
    {
        colorPropDesc.SetValue(Component, Color.LightBlue);
    }
}

Wenn die Entwurfsumgebung eine Instanz des Steuerelements oder der Komponente erstellt, wird die InitializeNewComponent-Methode des Designers aufgerufen. Im vorherigen Codebeispiel wird die BackColor-Eigenschaft des Steuerelements mithilfe eines PropertyDescriptor festgelegt.

Kompilieren des Codes

Wenn Sie Änderungen an den Entwurfszeiteigenschaften einer Komponente vornehmen, müssen Sie das Steuerelementprojekt erneut erstellen. Wenn außerdem noch ein weiteres Windows Forms-Projekt geöffnet ist, das diese Komponente verwendet, müssen Sie das Projekt möglicherweise aktualisieren, damit die Änderungen angezeigt werden. In der Regel müssen Sie das Entwurfsfenster, das die Komponente enthält, schließen und erneut öffnen.

Tipp

Sie müssen einen Verweis auf die Entwurfszeitassembly System.Design.dll hinzufügen. Diese Assembly ist nicht in .NET Framework 4 Client Profile enthalten. Um einen Verweis auf System.Design.dll hinzuzufügen, müssen Sie das Zielframework des Projekts in .NET Framework 4 ändern.

Siehe auch

Aufgaben

Gewusst wie: Erweitern der Darstellung und des Verhaltens von Steuerelementen im Entwurfsmodus

Weitere Ressourcen

Benutzerdefinierte Designer