Partager via


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 l’utilisation d’un objet UserControl en tant que conteneur de contrôle au moment du design après l’ajout de l’objet UserControl à un Windows Form.

Version du produit d’origine : 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.ComponentModelde la bibliothèque de classes Microsoft .NET Framework.

Cet article pas à pas explique comment faire agir un objet UserControl 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, UserControl doit agir en tant que conteneur de contrôle.

Par défaut, un objet UserControl peut agir en tant que conteneur de contrôle uniquement lorsque vous créez le contrôle. Pour qu’un UtilisateurControl héberge un contrôle constituant 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 le DesignerAttribute en transmettant les designerTypeName paramètres et les designerBaseType paramètres.

designerTypeName est le nom complet du type de concepteur qui fournit des services au moment du design. Passez la combinaison du System.Windows.Forms.Design.ParentControlDesigner paramètre et du System.Design 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ôle Windows Visual C#. Pour ce faire, procédez comme suit :

    1. Démarrez Visual Studio.
    2. Dans le menu Fichier , pointez sur Nouveau, puis cliquez sur Projet.
    3. Sous Types de projets, cliquez sur Visual C#, puis sur Bibliothèque de contrôles Windows Forms 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 ce faire, procédez comme suit :

    1. Démarrez Visual Studio.
    2. Dans le menu Fichier , pointez sur Nouveau, puis cliquez sur Projet.
    3. Sous Types de projets, cliquez sur Visual C#, puis sur Application Windows Forms 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 des é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 générée lors de la création du 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.

Note

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

References

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