[.Net] Masquer une propriété lors d'un héritage

Résolu
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 - 3 avril 2006 à 16:01
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 - 3 avril 2006 à 18:00
salut,



en héritant d'un contrôle je souhaite masquer plusieurs propriétés.

je connais l'attribut Browsable mais il ne concerne que le design et il
faudrait que je déclare toutes les fonctions à cacher. il y a aussi
Obsolete, pareil...



je me souviens
d'une méthode qui permet de le faire. elle s'utilise, me semble-t-il, à
l'intérieur du constructeur et prend comme paramètre le nom de la
propriété (un peu comme SetStyle).



genre :



Public Sub New ()



HideProperty(propertyName)



End Sub



si quelqu'un a plus de mémoire que moi, chui preneur !




[ Dalida ]<hr>
pensez à indiquer le langage utilisé et sa version !

3 réponses

Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016
3 avril 2006 à 18:00
Quine !



j'ai retrouvé ce dont je parlais (d'ailleurs je ne souhaitais pas masquer la propriété mais l'occulter ) !

bon le seul problème c'est que c'est bien différent de mes souvenirs, mais bon...

en fait la manip a lieu dans de Designer et permet de faire disparaitre
les propriétés au moment du design (comme BrowsableAttribute). on peut
aussi les masquer ou en créer de nouvelles (pour modifier les
propriétés il faut utiliser PostFilterProperties).



je vous file l'exemple de l'aide tel quel :



' The PreFilterProperties method is where you can add or remove

' properties from the component being designed.

'

' In this implementation, the Visible property is removed,

' the BackColor property is shadowed by the designer, and

' the a new property, called Locked, is added.

Protected Overrides Sub PreFilterProperties(ByVal properties As IDictionary)



' Always call the base PreFilterProperties implementation

' before you modify the properties collection.

MyBase.PreFilterProperties(properties)



' Remove the visible property.

properties.Remove("Visible")



' Shadow the BackColor property.

Dim propertyDesc As
PropertyDescriptor =
TypeDescriptor.CreateProperty(GetType(TabControlDesigner),
CType(properties("BackColor"), PropertyDescriptor), New Attribute(-1)
{})

properties("BackColor") = propertyDesc



' Create the Locked property.

properties("Locked") =
TypeDescriptor.CreateProperty(GetType(TabControlDesigner), "Locked",
GetType(Boolean), CategoryAttribute.Design, DesignOnlyAttribute.Yes)



End Sub




[ Dalida ]<hr>
pensez à indiquer le langage utilisé et sa version !
3
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
3 avril 2006 à 16:14
Bonjour

Tu peux tenter :

private shadows property .....

Shadows masque tous les membres portant le mme nom dans les classes parentes.

Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016
3 avril 2006 à 16:16
>NHenry : oui, mais il faut que je déclare toutes les propriétés à masquer, c'est la même limite qu'avec les attributs.

merci quand même !




[ Dalida ]<hr>
pensez à indiquer le langage utilisé et sa version !
0
Rejoignez-nous