bonjour
j'ai une classe qui hérite d'une autre
et je voudrais supprimer une propriété sur la classe fille
y a t il une possibilité ?
(j'ai deja essayé shadows, obsolete, browsable(false), overrides avec rien de dedans mais c'est pas terrible)
merci
bonjour
j'ai une classe qui hérite d'une autre
et je voudrais supprimer une propriété sur la classe fille
y a t il une possibilité ?
(j'ai deja essayé shadows, obsolete, browsable(false), overrides avec rien de dedans mais c'est pas terrible)
merci
Salut,
Mais c'est quoi l'interet de vouloir supprimer une propriété ? Si tu n'en veux pas, il suffit de ne pas s'en servir... Sinon tu la mets en "Protected" ou en "Shadow" et tu ne la verras pas
++
Qui ne tente rien n'a rien !
Ce qui ne nous tue pas nous rends plus fort !!
Mon projet ZELDA en C++/Allegro
http://www.tutoworld.com - Le Forum -
Mes ressources Dotnet (cours, sources, tutos)
--------------------------------------------
+ + =
Ne pas oublier le Tag !
c'est pas pour moi
c'est un objet qui va etre utilisé par d'autres personnes
donc le but c'est qu'il ne touche surtout pas cette propriété, et donc le mieux c'est qu'ils ne la voient pas
et sahdows ne fonctionne pas car ca masque juste la propriété du controle mais laisse cette du controle parent
Il n'est pas possible de masquer complètement une propriété, tu peux au mieux la rendre invisible du designer.
Il faut bien comprendre qu'essayer de masquer une propriété héritée va à l'encontre du concept même d'héritage.
Tu peux aussi surcharger la propriété, et déclencher une exception lors de l'écriture dans la propriété avec un message "vous ne devez pas utiliser cette propriété".
Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.
Bonnes pratiques pour les accès aux données
Débogage efficace en .NET
LINQ to Objects : l'envers du décor
Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter
Oui c'est ca, generalement quand on herite c'est pour utiliser toutes les propriétés et méthodes de la classe parente. Et "protected" ca marche pas ??Envoyé par SaumonAgile
SInon l'idée de déclancher une exception est bonne mais cela reste du "mauvais code" (bricolage comme tu dis !)
Qui ne tente rien n'a rien !
Ce qui ne nous tue pas nous rends plus fort !!
Mon projet ZELDA en C++/Allegro
http://www.tutoworld.com - Le Forum -
Mes ressources Dotnet (cours, sources, tutos)
--------------------------------------------
+ + =
Ne pas oublier le Tag !
Bonjour.
Alors là je suis pas du tout d'accord avec Aspic et Saumon (désolé ) !
L'héritage ça peut être destiné à ne pas tout réécrire en n'ayant besoin que d'une partie de la class héritée.
Exemple : j'ai hérité un RichTextBox car c'est trés bien pour la mise en forme du texte mais par contre, je l'ai étendu pour avoir en background un gradient de couleur et une bordure avec des coins arrondis. Donc le Backcolor n'a pour moi que peu d'intérêt puisqu'en fait la couleur est un couple de triplets de couleur (Focus, Mouse on, Standard).
Donc ça ne me semble pas déconnant de faire ceci :
Cdt.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <Category("CustomProperty"), Browsable(False), _ Description("Pas de back color"), _ DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)> _ Public Shadows Property BackColor() As Color Get Return Color.Transparent End Get Set(ByVal value As Color) MyBase.BackColor = Color.Transparent End Set End Property
Bon à savoir : la touche F1 ne sert pas à commander des places pour le grand prix de Belgique.
Pourtant apparement le Shadows ne fonctionne pas...
Qui ne tente rien n'a rien !
Ce qui ne nous tue pas nous rends plus fort !!
Mon projet ZELDA en C++/Allegro
http://www.tutoworld.com - Le Forum -
Mes ressources Dotnet (cours, sources, tutos)
--------------------------------------------
+ + =
Ne pas oublier le Tag !
Dans le cas que tu cites comme exemple, il s'agit clairement d'un héritage que je qualifierais de 'par défaut'. Ton objectif est de créer un RichTextBox avec une bordure différente.Envoyé par olsimare
L'idéal serait d'hériter d'un RichTextBox sans bordure ni background, or ce composant n'existe pas à ma connaissance dans le framework. Tu es donc obligé d'hériter d'un objet plus complet qui possède déjà une bordure et un background. Tu es alors obligé de masquer ce qui est en trop.
Ce n'est plus un héritage au sens conceptuel, c'est surtout la solution la plus rapide pour créer un RichTextBox personnalisé.
Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.
Bonnes pratiques pour les accès aux données
Débogage efficace en .NET
LINQ to Objects : l'envers du décor
Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter
Bonjour.
Effectivement, là on est d'accord Saumon, d'ailleurs j'avais commencé en héritant un control (mais ça me gonflait de tout refaire...) ce qui est plus propre.
Et oui, c'est la recherche de l'efficatité plutôt que de la pureté de conception qui fait la différence dans ce cas.
Cdt.
Bon à savoir : la touche F1 ne sert pas à commander des places pour le grand prix de Belgique.
bon j'ai trouvé :
<ComponentModel.EditorBrowsable(ComponentModel.EditorBrowsableState.Never)>
additioné avec system.browsable(false) c'est pas trop mal
la propriété n'est plus proposée en autocomplétion mais elle reste utilisanble (si on la tape ca ne mets pas d'erreur)
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager