Recommandations relatives au type du contrôle
Le .NET Framework vous offre la possibilité de développer et d'implémenter de nouveaux contrôles. En plus du traditionnel contrôle utilisateur, vous allez maintenant découvrir que vous pouvez écrire des contrôles personnalisés qui effectuent leur propre peinture et même développer les fonctionnalités des contrôles existants grâce à l'héritage. Vous aurez parfois du mal à choisir entre ces différents types de contrôle. C'est pourquoi nous vous expliquons ici ce qui différencie les divers types de contrôles dont vous pouvez hériter et nous vous donnons des conseils sur le type à choisir en fonction de votre projet.
Notes
Si vous souhaitez créer un contrôle à utiliser sur les Web Forms, consultez Développement de contrôles serveur ASP.NET personnalisés.
Héritage d'un contrôle Windows Forms
Vous pouvez créer un contrôle hérité à partir de n'importe quel contrôle Windows Forms existant. Cette méthode vous permet de conserver toutes les fonctionnalités inhérentes au contrôle Windows Forms et même de les enrichir en y ajoutant des propriétés, des méthodes personnalisées ou encore d'autres fonctionnalités. Par exemple, vous pouvez créer un contrôle dérivé de TextBox qui n'accepte que les nombres et convertit automatiquement les données entrées en une valeur. Ce contrôle peut contenir du code de validation qui est appelé à chaque modification du texte contenu dans la zone et posséder une propriété supplémentaire, Value. Dans certains cas, vous pouvez également ajouter une apparence personnalisée à l'interface graphique de votre contrôle en substituant la méthode OnPaint de la classe de base.
Optez pour l'héritage d'un contrôle Windows Forms si :
les fonctionnalités dont vous avez besoin sont pour la plupart identiques à celles d'un contrôle Windows Forms existant ;
vous n'avez pas besoin d'une interface graphique personnalisée ou si vous souhaitez en créer une nouvelle pour un contrôle existant.
Héritage de la classe UserControl
Un contrôle utilisateur est une collection de contrôles Windows Forms encapsulés dans un même conteneur. Le conteneur détient toutes les fonctionnalités inhérentes à chacun des contrôles Windows Forms et vous permet d'exposer et de lier sélectivement leurs propriétés. Un contrôle affichant des adresses de clients extraites d'une base de données est un exemple de contrôle utilisateur. Ce contrôle contiendrait plusieurs zones de texte affichant chaque champ et des contrôles de bouton permettant de naviguer d'un enregistrement à l'autre. Les propriétés de liaison de données peuvent être exposées sélectivement et le contrôle réutilisé dans d'autres applications.
Optez pour l'héritage de la classe UserControl si :
- vous voulez combiner les fonctionnalités de plusieurs contrôles Windows Forms dans une même entité réutilisable.
Héritage de la classe Control
Une autre méthode consiste à créer un contrôle presque entièrement nouveau en héritant de la classe Control. La classe Control fournit toutes les fonctionnalités élémentaires requises par les contrôles (par exemple, des événements), mais pas de fonctionnalité spécifique ni d'interface graphique. Créer un contrôle par héritage de la classe Control exige beaucoup plus de réflexion et d'efforts que d'hériter d'un contrôle utilisateur ou d'un contrôle Windows Forms existant. En effet, il faut écrire du code pour l'événement OnPaint du contrôle, mais aussi tout le code spécifique aux fonctionnalités nécessaires. Toutefois, cette méthode offre une plus grande souplesse et vous permet de personnaliser un contrôle pour l'adapter exactement à vos besoins. Un contrôle d'horloge imitant l'aspect et le fonctionnement d'une horloge analogique est un exemple de contrôle personnalisé. En effet, il est fait appel à la peinture personnalisée pour simuler le déplacement des aiguilles sur le cadran en réponse aux événements Tick d'un composant d'horloge interne.
Optez pour l'héritage de la classe Control si :
vous voulez fournir une représentation graphique personnalisée de votre contrôle ;
vous devez implémenter des fonctionnalités personnalisées que n'offrent pas les contrôles standard.
Voir aussi
Tâches
Comment : développer un contrôle Windows Forms simple