[VB.NET] Contrôles personnalisés et héritage

chrisisis Messages postés 32 Date d'inscription mercredi 14 avril 2004 Statut Membre Dernière intervention 2 novembre 2004 - 29 sept. 2004 à 09:53
cs_Benouille Messages postés 215 Date d'inscription jeudi 24 octobre 2002 Statut Membre Dernière intervention 7 septembre 2007 - 29 sept. 2004 à 11:28
Bonjour,

Je développe actuellement des contrôles personnalisés en dot.net, plus précisément en vb.net

J'ai à développer un textbox, un label, un button, plus quelques autres

Pour chacun d'eux ma classe hérite de la classe de base du contrôle à créer

Pour le TextBox

Code:
Namespace WebControls

'''<summary>Classe de gestion des contrôles "TextBox" sécurisés</summary>
Public Class TextBox
Inherits System.Web.UI.WebControls.TextBox
Implements System.Web.UI.INamingContainer

Pour le label

Code:
'''<summary>Classe de gestion des contrôles "Label" sécurisés</summary>
Public Class Label
Inherits System.Web.UI.WebControls.Label
Implements System.Web.UI.INamingContainer

Pour le Button

Code:
'''<summary>Classe de gestion des contrôles "Button" sécurisés</summary>
Public Class Button
Inherits System.Web.UI.WebControls.Button
Implements System.Web.UI.INamingContainer

etc

Chacun d'eux est dans un espace de nom WebControls

Ils ont tous des propriétés (et champs) communes :

Code:
Private _sLibelleFonction As String
Private _sGuidFonction As String
Private _xmlValeursSelect As Xml.XmlDocument
Private _bPanelNotNull As Boolean = False
Private _arValeursPossibles As Array

Et des fonctions communes

Je sais qu'en dot.net le multiple héritage de classes n'est pas possible

Une solution aurait été de créer une classe WebControl avec ces propriétés et fonctions communes

Code:
'''<summary>Classe de gestion des contrôles "WebControl" sécurisés</summary>
Public Class WebControl
Inherits System.Web.UI.WebControls.WebControl
Implements System.Web.UI.INamingContainer

dans l'espace de nom WebControls

Et dans ce cas, mes contrôles personnalisés héritent de cette classe WebControl
Mais le problème c'est que je n'ai plus les propriétés propres du TextBox, du Label, du Button
Je suis obligée de les redéfinir
Ou d'avoir une propriété Control TextBox et de l'ajouter à mon contrôle de base, mais cette solution n'est pas intéressante

Je cherche une solution pour avoir toutes ses propriétés et fonctions communes dans une même classe, tout en héritant de la classe de base qui m'intéresse à savoir, TextBox, Button, Label, etc

Merci de votre aide ou de vos suggestions

1 réponse

cs_Benouille Messages postés 215 Date d'inscription jeudi 24 octobre 2002 Statut Membre Dernière intervention 7 septembre 2007
29 sept. 2004 à 11:28
effectivement l'héritage multiple n'éxiste pas. Il faut passer par les interfaces.

c'est assez bien expliqué sur le site msdn de crosoft, recherche a "espace de travail" ou "interface" (ou les deux)
tu devrais trouver ton bonheur.

note tout de meme que si la création d'un espace de travail te permet d'avoir toutes les interphaces que tu veux, tu devra quand meme coder l'implémentation des fonctions qui en découlent.

Benas, l'as de l'interface ;)
Benouille la grenouille :approve)
0
Rejoignez-nous