Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Avec C#, vous pouvez créer des contrôles personnalisés puissants via l’héritage. Grâce à l’héritage, vous pouvez créer des contrôles qui conservent toutes les fonctionnalités inhérentes aux contrôles Windows Forms standard, mais incorporent également 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 projet, vous spécifiez son nom pour définir l’espace de noms racine, le nom de l’assembly et le nom du projet, et pour vous assurer que le composant par défaut se trouvera dans l’espace de noms approprié.
Pour créer la bibliothèque de contrôles ValueButtonLib et le contrôle ValueButton
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 affecté à 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 fournissent des composants nommésValueButton
, vous pouvez spécifier le composantValueButton
à l’aide deValueButtonLib.ValueButton
. Pour plus d’informations, consultez espaces de noms.Dans l’Explorateur de solutions, cliquez avec le bouton droit sur UserControl1.cs, puis choisissez Renommer dans le menu contextuel. Remplacez le nom du fichier par ValueButton.cs. Cliquez sur le bouton Oui lorsque vous êtes invité à renommer toutes les références à l’élément de code «
UserControl1
».Dans l’Explorateur de solutions, cliquez avec le bouton droit sur ValueButton.cs , puis sélectionnez Afficher le code.
Recherchez la ligne d’instruction
class
,public partial class ValueButton
, puis modifiez le type dont ce contrôle hérite, en passant de UserControl à Button. Cela permet à votre contrôle hérité d'hériter de toutes les fonctionnalités du contrôle Button.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 .
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.Dans le menu Fichier , choisissez Enregistrer tout pour enregistrer le projet.
Remarque
Un concepteur visuel n’est plus disponible. Comme le contrôle Button effectue son propre rendu, vous ne pouvez pas modifier son apparence dans le designer. 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 des composants, qui n'ont pas d'éléments d'interface utilisateur, à la surface de conception.
Ajouter une propriété à votre contrôle hérité
L’une des utilisations possibles des contrôles Windows Forms hérités est la création de contrôles identiques dans l’apparence des 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é Value
Dans l’Explorateur de solutions, cliquez avec le bouton droit sur ValueButton.cs, puis cliquez sur Afficher le code dans le menu contextuel.
Recherchez l’instruction
class
. Immédiatement après le{
, tapez le code suivant :// 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 par lesquelles la
ButtonValue
propriété est stockée et récupérée. L’instructionget
définit la valeur retournée à la valeur stockée dans la variablevarValue
privée, et l’instructionset
définit la valeur de la variable privée à l’aide duvalue
mot clé.Dans le menu Fichier , choisissez 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 pour qu’il s’exécute. Vous devez également rendre votre contrôle accessible au projet de test en le générant (en le compilant). Dans cette section, vous allez générer votre contrôle et le tester dans un Windows Form.
Pour construire votre contrôle
Dans le menu Générer, cliquez sur Générer la solution. La build doit réussir sans erreur ni avertissements du compilateur.
Pour créer un projet de test
Dans le menu Fichier , pointez sur Ajouter , puis cliquez sur Nouveau projet pour ouvrir la boîte de dialogue Ajouter un nouveau projet .
Sélectionnez le nœud Windows , sous le nœud Visual C# , puis cliquez sur Application Windows Forms.
Dans la zone Nom , entrez Test.
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 .
Cliquez sur l’onglet Projets étiquetés. 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.
Dans l’Explorateur de solutions, cliquez avec le bouton droit sur Tester et sélectionnez Générer.
Pour ajouter votre contrôle au formulaire
Dans l’Explorateur de solutions, cliquez avec le bouton droit sur Form1.cs et choisissez Concepteur de vues dans le menu contextuel.
Dans la boîte à outils, sélectionnez Composants ValueButtonLib. Double-cliquez sur ValueButton.
Un ValueButton apparaît dans le formulaire.
Cliquez avec le bouton droit sur ValueButton et sélectionnez Propriétés dans le menu contextuel.
Dans la fenêtre Propriétés , 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.
Définissez la propriété ButtonValue sur 5.
Sous l’onglet Tous les Windows Forms de la boîte à outils, double-cliquez sur Étiquette pour ajouter un Label contrôle à votre formulaire.
Déplacez l’étiquette au centre du formulaire.
Double-cliquez sur
valueButton1
.L’Éditeur de code s’ouvre à l’événement
valueButton1_Click
.Insérez la ligne de code suivante.
label1.Text = valueButton1.ButtonValue.ToString();
Dans l’Explorateur de solutions, cliquez avec le bouton droit sur Test, puis choisissez Définir comme projet de démarrage dans le menu contextuel.
Dans le menu Débogage , sélectionnez Démarrer le débogage.
Form1
apparaît.Cliquez sur
valueButton1
.Le chiffre « 5 » est affiché dans
label1
, démontrant que laButtonValue
propriété de votre contrôle hérité a été passée àlabel1
travers lavalueButton1_Click
méthode. Ainsi, votreValueButton
contrôle hérite de toutes les fonctionnalités du bouton Windows Forms standard, mais expose une propriété supplémentaire personnalisée.
Voir aussi
.NET Desktop feedback