Partager via


Procédure pas à pas : hériter d’un contrôle Windows Forms avec C#

Avec C#, vous pouvez créer des contrôles personnalisés puissants via l’héritage. L’héritage vous permet de créer des contrôles qui conservent toutes les fonctionnalités inhérentes des contrôles Windows Forms standard, tout en intégrant des fonctionnalités personnalisées. Dans cette procédure pas à pas, vous allez créer un contrôle hérité simple appelé ValueButton. Ce bouton hérite des fonctionnalités du contrôle Windows Forms Button standard et expose une propriété personnalisée appelée ButtonValue.

Créer le projet

Lorsque vous créez un nouveau projet, vous spécifiez son nom afin de définir l’espace de noms racine, le nom de l’assembly et le nom de projet, et de vous assurer que le composant par défaut sera placé dans l’espace de noms approprié.

Pour créer la bibliothèque de contrôles ValueButtonLib et le contrôle ValueButton

  1. Dans Visual Studio, créez un projet de bibliothèque de contrôle Windows Forms et nommez-le ValueButtonLib.

    Le nom du projet, ValueButtonLib, est également assigné à l’espace de noms racine par défaut. L’espace de noms racine est utilisé pour qualifier les noms des composants dans l’assembly. Par exemple, si deux assemblies contiennent des composants nommés ValueButton, vous pouvez spécifier votre composant ValueButton à l’aide de ValueButtonLib.ValueButton. Pour plus d’informations, consultez l’article Espaces de noms.

  2. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur UserControl1.cs, puis sélectionnez Renommer dans le menu contextuel. Remplacez le nom du fichier par ValueButton.cs. Cliquez sur le bouton Oui lorsque l’on vous demande si vous souhaitez renommer toutes les références à l’élément de code « UserControl1 ».

  3. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur ValueButton.cs, puis sélectionnez Afficher le code.

  4. Recherchez la ligne d’instruction class , public partial class ValueButtonpuis modifiez le type à partir duquel ce contrôle hérite de UserControlButton. Cela permet à votre contrôle hérité d’hériter de toutes les fonctionnalités du Button contrôle.

  5. Dans l’Explorateur de solutions, ouvrez le nœud ValueButton.cs pour afficher le fichier de code généré par le concepteur, ValueButton.Designer.cs. Ouvrez ce fichier dans l’éditeur de code.

  6. Recherchez la InitializeComponent méthode et supprimez la ligne qui affecte la AutoScaleMode propriété. Cette propriété n’existe pas dans le Button contrôle.

  7. Dans le menu Fichier, sélectionnez Enregistrer tout pour enregistrer le projet.

    Remarque

    Plus aucun concepteur visuel n’est disponible. Comme le Button contrôle fait sa propre peinture, vous ne pouvez pas modifier son apparence dans le concepteur. Sa représentation visuelle sera exactement la même que celle de la classe dont elle hérite (autrement dit, Button) sauf si elle est modifiée dans le code. Vous pouvez toujours ajouter sur l’aide de conception des composants n’ayant aucun élément d’interface utilisateur.

Ajouter une propriété à votre contrôle hérité

Les contrôles Windows Forms hérités permettent notamment de créer des contrôles ayant le même aspect que les contrôles Windows Forms standard, mais qui exposent des propriétés personnalisées. Dans cette section, vous allez ajouter une propriété appelée ButtonValue à votre contrôle.

Pour ajouter la propriété Valeur

  1. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur ValueButton.cs, puis cliquez sur Afficher le code dans le menu contextuel.

  2. Recherchez l’instruction class. Saisissez le code suivant immédiatement après { :

    // Creates the private variable that will store the value of your
    // property.
    private int varValue;
    // Declares the property.
    public int ButtonValue
    {
       // Sets the method for retrieving the value of your property.
       get
       {
          return varValue;
       }
       // Sets the method for setting the value of your property.
       set
       {
          varValue = value;
       }
    }
    

    Ce code définit les méthodes utilisées pour stocker et récupérer la propriété ButtonValue. L’instruction get définit la valeur retournée à la valeur stockée dans la variable privée varValueet l’instruction set définit la valeur de la variable privée à l’aide du mot clé value.

  3. Dans le menu Fichier, sélectionnez Enregistrer tout pour enregistrer le projet.

Tester le contrôle

Les contrôles ne sont pas des projets autonomes ; ils doivent être hébergés dans un conteneur. Pour tester votre contrôle, vous devez fournir un projet de test dans lequel il sera exécuté. Vous devez également rendre votre contrôle accessible au projet de test en le générant (compilant). Dans cette section, vous allez générer votre contrôle et le tester dans un environnement Windows Form.

Pour générer votre contrôle

Dans le menu Générer, cliquez sur Générer la solution. L’opération doit s’exécuter sans aucun avertissement ou erreur de compilation.

Pour créer un projet de test

  1. Dans le menu Fichier, pointez versAjouter, puis cliquez sur Nouveau projet pour ouvrir la boîte de dialogue Ajouter un nouveau projet.

  2. Sélectionnez le nœud Windows sous le nœud Visual C#, puis cliquez sur Application Windows Forms.

  3. Dans la zone Nom , entrez Test.

  4. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le nœud Références de votre projet de test, puis sélectionnez Ajouter une référence dans le menu contextuel pour afficher la boîte de dialogue Ajouter une référence.

  5. Cliquez sur l’onglet intitulé Projets. Votre projet ValueButtonLib est répertorié sous Nom du projet. Double-cliquez sur le projet pour ajouter la référence au projet de test.

  6. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur Test, puis sélectionnez Générer.

Pour ajouter votre contrôle au formulaire

  1. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur Form1.cs et sélectionnez Concepteur de vues dans le menu contextuel.

  2. Dans la boîte à outils, sélectionnez Composants ValueButtonLib. Double-cliquez sur ValueButton.

    Un élément ValueButton apparaît sur le formulaire.

  3. Cliquez avec le bouton droit sur l’élément ValueButton et sélectionnez Propriétés dans le menu contextuel.

  4. Dans la fenêtre Propriété, examinez les propriétés de ce contrôle. Notez qu’ils sont identiques aux propriétés exposées par un bouton standard, sauf qu’il existe une propriété supplémentaire, ButtonValue.

  5. Définissez la propriété ButtonValue sur 5.

  6. Sous l’onglet Tous les Windows Forms de la boîte à outils, double-cliquez sur Étiquette pour ajouter un Label contrôle à votre formulaire.

  7. Déplacez l’étiquette au centre du formulaire.

  8. Double-cliquez sur valueButton1.

    L’éditeur de code s’ouvre à l’événement valueButton1_Click.

  9. Saisissez la ligne de code suivante.

    label1.Text = valueButton1.ButtonValue.ToString();
    
  10. Dans l’Explorateur de solutions, cliquez avec le bouton droit sur Test et sélectionnez Définir comme projet de démarrage dans le menu contextuel.

  11. Dans le menu Déboguer, sélectionnez Démarrer le débogage.

    Form1 s’affiche.

  12. Cliquez sur valueButton1.

    Le chiffre « 5 » s’affiche dans label1, ce qui prouve que la propriété ButtonValue de votre contrôle hérité a été définie sur label1 via la méthode valueButton1_Click. Par conséquent, votre contrôle ValueButton hérite de toutes les fonctionnalités du bouton Windows Forms standard, mais expose en outre une propriété personnalisée supplémentaire.

Voir aussi