[VS2005] Modifier les propriétés visibles selon la valeur d'une autre

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 - 4 sept. 2007 à 08:34
cs_rodcobalt22 Messages postés 193 Date d'inscription dimanche 10 février 2002 Statut Membre Dernière intervention 16 février 2016 - 4 sept. 2007 à 09:07
'Lut all.

Encore un petit problème dont j'aimerais vous faire part.
J'ai fait un bouton avec la propriété Style pouvant avoir les valeurs suivantes:

<li>TextOnly: Un seul texte
</li><li>TextAndImage: Un texte et une image en dessous
</li><li>TwoText: Deux text l'un en dessous de l'autre
</li><li>ImageOnly: une image seule
</li>J'aimerais (si cela est possible bien entendu) que suivant cette valeur les propriétés modifiables en mode Design soient différentes.
Exemple:

<li>TextOnly: Un seul texte = > Faire apparaitre la propriété Text
</li><li>TextAndImage: Un texte et une image en dessous => Faire apparaitre les propriétés Text et Image</li><li>TwoText: Deux text l'un en dessous de l'autre = > Faire apparaitre les propriétés Text1 et Text2 </li><li>ImageOnly: une image seule => Faire apparaitre la propriété Image</li>
Je me suis donc orienté vers une classe héritant de  System.Windows.Forms.Design.ControlDesigner

J'ai d'abord trouver les méthodes PreFilterProperties et PostFilterProperties mais il me semble qu'elles ne sont utiles que lors de la création du control et non lors de sa modification.

Je pense que je ne doit pas Creer et Supprimer les propriétés mais plutot les rendre Visible ou non en modifiant la propriétés Attributes d'un PropertyDescriptor

Voilà j'espère avoir clairement exposer mon problème. Donc si quelqu'un à une idée ou un lien ou quoi que ce soit pour m'aider à avancer (même si c'est : "ce que tu cherches à faire est impossible"), ca serait cool. J'ai beau fouiller le NET je ne trouve rien de probant.

En attendant Google is my friend.
@+: Ju£i?n
Pensez: Réponse acceptée

2 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
4 sept. 2007 à 08:41
Re,
J'ai oublie de préciser mais je prense que vous aviez compris que

<li>TextOnly: Un seul texte = > Faire apparaitre la propriété Text
</li><li>TextAndImage: Un texte et une image en dessous => Faire apparaitre les propriétés Text et Image</li><li>TwoText: Deux text l'un en dessous de l'autre = > Faire apparaitre les propriétés Text1 et Text2 + CACHE propriété Image
</li><li> ImageOnly : une image seule => Faire apparaitre la propriété Image + CACHE Propriétés. Text1 et Text2 </li>

@+: Ju£i?n
Pensez: Réponse acceptée
0
cs_rodcobalt22 Messages postés 193 Date d'inscription dimanche 10 février 2002 Statut Membre Dernière intervention 16 février 2016
4 sept. 2007 à 09:07
Oui c'est tout à fait possible (sauf erreur de ma part) il faut que tu explore du cote propertydescriptor dans les attribut de propriétés.

Eventuellement essaye de t'inspirer de cette source :

http://www.codeproject.com/cs/miscctrl/bending_property.asp.

La personne a personnalisé son property grid vois si des choses intéressante peuvent en ressortir.

Mais en tout cas de souvenir, c'est possible.
0
Rejoignez-nous