Partager via


Comment : effectuer une initialisation personnalisée pour les contrôles en mode design

Vous pouvez utiliser votre concepteur personnalisé pour initialiser des composants et des contrôles lors de leur création par l'environnement de design.

Exemple

L'exemple de code suivant montre comment initialiser un contrôle lorsqu'il est créé par l'environnement de design. Cette création se produit lorsque vous faites glisser une instance du contrôle vers votre formulaire et lorsque vous démarrez le concepteur pour votre formulaire. Pour obtenir une explication complète de cet exemple de code, consultez Comment : étendre l'apparence et le comportement des contrôles en mode design.

' 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);
    }
}

Lorsque l'environnement de design crée une instance de votre contrôle ou composant, il appelle la méthode InitializeNewComponent de votre concepteur. Dans l'exemple de code précédent, la propriété BackColor du contrôle est définie à l'aide d'un PropertyDescriptor.

Compilation du code

Lorsque vous apportez des modifications aux aspects liés à la conception d'un composant, vous devez générer à nouveau le projet de contrôle. De plus, si un autre projet Windows Forms est actuellement ouvert et utilise ce composant, vous devrez probablement actualiser le projet pour consulter les modifications. En général, vous devez fermer et rouvrir la fenêtre de conception contenant le composant.

Notes

Vous devez ajouter une référence à l'assembly au moment du design, System.Design.dll.Cet assembly n'est pas inclus dans le Framework 4 Client Profile.Pour ajouter une référence à System.Design.dll, vous devez remplacer le Framework cible du projet par .NET Framework 4.

Voir aussi

Tâches

Comment : étendre l'apparence et le comportement des contrôles en mode design

Autres ressources

Concepteurs personnalisés