Propriété d'un control utilisateur

[Résolu]
Signaler
Messages postés
58
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
15 novembre 2006
-
Messages postés
129
Date d'inscription
mardi 22 novembre 2005
Statut
Membre
Dernière intervention
30 décembre 2007
-
Bonjour, j'ais créé un control qui hérite d'un button.

J'ais pus ajouté des propriétées mais je n'arrive pas à en retirer.
Est-ce possible et si oui comment les enlever ou les masquer à l'utilisateur ?

Si quelqu'un peut m'aider ...

6 réponses

Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
58
En faisant comme ceci par exemple :

[

Browsable(
false)]

public
new
Color ForeColor
{
  
get
   {
     
return
base.ForeColor;
   }

   set { }
}

La property ne sera plus visible via intellisens, mais sera quand même utilisable.
C'est pour que ça que je combine avec un new, au cas ou l'utilisateur essayerait de l'utiliser : elle ne fait plus rien...
<hr size="2" />VC# forever
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
58
Salut,
On ne peut pas les supprimer, mais tu peux faire en sorte qu'elle ne soit pas visible (les masquer si on veut bien) pour le programmeur (il ne la verra pas via intellisens). Combiner avec le mot clef new, ça doit le faire

<hr size="2" />VC# forever
Messages postés
58
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
15 novembre 2006

Le mot clé new permet de sudéfinir la propriété mais pas de la masquer.
Comment masquer alors?
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
54
et aussi EditorBrowsable

Mx
MVP C# 
Messages postés
129
Date d'inscription
mardi 22 novembre 2005
Statut
Membre
Dernière intervention
30 décembre 2007
3
Salut,

Je ne sais pas comment masquer une propriété, mais tu peux à la rigueur utiliser l'attribute System.ObsoleteAttribute sur les propriétés redéfinies que tu veux interdire à l'utilisateur. Ça ne l'empêchera pas de les voir, mais un warning sera généré à la compilation pour le prévenir qu'il ne doit pas les utiliser. Tu peux même faire en sorte que le compilateur génére une erreur et non un warning en mettant la propriété IsError de l'attribut à true.

Attention toutefois, je ne pense pas qu'il soit judicieux de faire cela sur certaines propriétés héritées de Control qui pourraient être nécessaires au bon fonctionnement du contrôle (je pense par exemple à Location, Size, etc.).

<hr size="2" width="100%" />Pour des débats relatifs à la programmation, essayez ce forum.
Messages postés
129
Date d'inscription
mardi 22 novembre 2005
Statut
Membre
Dernière intervention
30 décembre 2007
3
Bon, ben si j'avais rafraîchi la page avant d'envoyer, j'aurais su comment masquer une propriété...

<hr size="2" width="100%" />Pour des débats relatifs à la programmation, essayez ce forum.