Utiliser Visual C# pour faire en sorte qu’un objet UserControl agisse comme un conteneur de contrôle au moment de la conception

Cet article fournit des informations sur la façon de faire en sorte qu’un objet UserControl agisse en tant que conteneur de contrôle au moment de la conception après avoir ajouté l’objet UserControl à un Windows Form.

Version d’origine du produit : Visual C#
Numéro de la base de connaissances d’origine : 813450

Résumé

Cet article fait référence à l’espace de noms System.ComponentModelbibliothèque de classes Microsoft .NET Framework .

Cet article pas à pas explique comment faire en sorte qu’un objet UserControl agisse en tant que conteneur de contrôle au moment du design après avoir placé UserControl sur un Windows Form. Il peut arriver que vous souhaitiez faire glisser un contrôle vers votre UserControl. Pour ce faire, le UserControl doit agir comme un conteneur de contrôle.

Par défaut, un objet UserControl peut agir comme conteneur de contrôle uniquement lorsque vous créez le contrôle. Pour que l’hôte UserControl soit un contrôle constitutif après avoir placé usercontrol sur un Windows Form, vous devez modifier le concepteur par défaut de UserControl. Pour implémenter des services au moment du design pour un composant, utilisez la DesignerAttribute classe de l’espace System.ComponentModel de noms . vient DesignerAttribute avant la déclaration de classe. Initialisez en DesignerAttribute transmettant les designerTypeName paramètres et designerBaseType .

designerTypeName est le nom complet du type de concepteur qui fournit des services au moment du design. Passez la combinaison de System.Windows.Forms.Design.ParentControlDesigner et de pour System.Design le designerTypeName paramètre . La ParentControlDesigner classe étend le comportement au moment du design pour un UserControl.

designerBaseType est le nom de la classe de base pour le concepteur. La classe utilisée pour les services au moment du design doit implémenter l’interface IDesigner.

Créer userControl en tant que conteneur de contrôle au moment du design

  1. Créez un projet de bibliothèque de contrôles Windows Visual C#. Pour cela, procédez comme suit :

    1. Démarrez Visual Studio.
    2. On the File menu, point to New, and then click Project.
    3. Sous Types de projets, cliquez sur Visual C#, puis sur Windows Forms Bibliothèque de contrôles sous Modèles.
  2. Nommez le projet ContainerUserControl. Par défaut, UserControl1.cs est créé.

  3. Dans Explorateur de solutions, cliquez avec le bouton droit sur UserControl1.cs, puis cliquez sur Afficher le code.

  4. Ajoutez le code suivant à la section déclarations :

    using System.ComponentModel.Design;
    
  5. Appliquez l’attribut System.ComponentModel.DesignerAttribute au contrôle comme suit :

    [Designer("System.Windows.Forms.Design.ParentControlDesigner, System.Design", typeof(IDesigner))]
    public class UserControl1 : System.Windows.Forms.UserControl
    {
        ...
    }
    
  6. Dans le menu Générer, cliquez sur Générer la solution.

Tester usercontrol

  1. Créez un projet Visual C#. Pour cela, procédez comme suit :

    1. Démarrez Visual Studio.
    2. On the File menu, point to New, and then click Project.
    3. Sous Types de projets, cliquez sur Visual C#, puis sur Windows Forms Application sous Modèles. Par défaut, Form1.cs est créé.
  2. Ajoutez le contrôle UserControl1 à la boîte à outils.

    1. Dans le menu Outils , cliquez sur Choisir les éléments de boîte à outils.
    2. Sous l’onglet Composants .NET Framework , cliquez sur Parcourir.
    3. Dans la zone Ouvrir un fichier , recherchez la DLL qui a été générée lorsque vous avez créé le contrôle UserControl.
  3. Faites glisser UserControl1 de la boîte à outils (sous Windows Forms) vers Form1.cs.

  4. Faites glisser un contrôle Button de la boîte à outils vers UserControl1.

Remarque

UserControl1 se comporte comme un conteneur de contrôle pour le contrôle Button.

References

Pour plus d’informations, consultez le site web Microsoft : ParentControlDesigner, classe.