OVH Cloud OVH Cloud

TypeConverter

1 réponse
Avatar
--== Alain ==--
Bonjour,

Quelqu'un a-t-il deja eu des soucis avec un TypeConverter ?

Je m'explique :

J'ai cree un typeConverter pour une propriete de mon controle.
Voici mon code.

[Category("Appearance")]
[Browsable(true)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
[Description("Setup Style, Type and Color of gridlines to draw.")]
[TypeConverter(typeof(CGridLineConverter))]
public CGridLine GridLines
{
...
}

avec ma class TypeConverter :
public class CGridLineConverter : ExpandableObjectConverter
{
...
}

et ma class CGridLine :
public class CGridLine
{
...
}

Quand je test mon controle dans le TestCOntainer fournit pas VS2005,
j'ai le comportement suivant :

test 1.
ma propriete "GridLines" de mon controle n'est pas affichee dans ma
PropertyGrid de la fenetre TestContainer.

test 2.
si je mets en commentaire les lignes suivante :
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
et
[TypeConverter(typeof(CGridLineConverter))]
La propriete "GridLines" est correctement affichee mais est inactive

test 3.
si je mets en commentaire, la ligne :
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
uniquement
[TypeConverter(typeof(CGridLineConverter))] est actif.
la propriete "GridLines" est inactive, et son champ ou l'on ecrit sa
valeur est completement colorie en noir.

test 4.
si
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
est actif (pas en commentaire) et que
[TypeConverter(typeof(CGridLineConverter))] est en commentaire alors la
propriete "GridLines" est affichee comme accessible, et sa valeurest :
ARListView.Design.CGridLine

ce qui correspond a Namespace1.Namespace2.ClassName de ma propriete.

donc je suis perdu car je ne comprends pas ou est le probleme.
Pourquoi la propriete n'est pas affichee correctement quand les 2
attributs son actifs ?

Merci pour votre aide

Alain.

1 réponse

Avatar
Paul Bacelar
Quand cela devient compliqué, je préfère copier sur la fauille du voisin,
comme à l'école ;-))

Pour cela, l'anti-sèche c'est Reflector.

Vous trouvez un control qui marche comme vous voulez et vous utiliser
Reflector pour voir comment ILS ont fait.
--
Paul Bacelar
MVP VC++


"--== Alain ==--" wrote in message
news:Op1%
Bonjour,

Quelqu'un a-t-il deja eu des soucis avec un TypeConverter ?

Je m'explique :

J'ai cree un typeConverter pour une propriete de mon controle.
Voici mon code.

[Category("Appearance")]
[Browsable(true)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
[Description("Setup Style, Type and Color of gridlines to draw.")]
[TypeConverter(typeof(CGridLineConverter))]
public CGridLine GridLines
{
...
}

avec ma class TypeConverter :
public class CGridLineConverter : ExpandableObjectConverter
{
...
}

et ma class CGridLine :
public class CGridLine
{
...
}

Quand je test mon controle dans le TestCOntainer fournit pas VS2005, j'ai
le comportement suivant :

test 1.
ma propriete "GridLines" de mon controle n'est pas affichee dans ma
PropertyGrid de la fenetre TestContainer.

test 2.
si je mets en commentaire les lignes suivante :
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
et
[TypeConverter(typeof(CGridLineConverter))]
La propriete "GridLines" est correctement affichee mais est inactive

test 3.
si je mets en commentaire, la ligne :
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
uniquement
[TypeConverter(typeof(CGridLineConverter))] est actif.
la propriete "GridLines" est inactive, et son champ ou l'on ecrit sa
valeur est completement colorie en noir.

test 4.
si
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
est actif (pas en commentaire) et que
[TypeConverter(typeof(CGridLineConverter))] est en commentaire alors la
propriete "GridLines" est affichee comme accessible, et sa valeurest :
ARListView.Design.CGridLine

ce qui correspond a Namespace1.Namespace2.ClassName de ma propriete.

donc je suis perdu car je ne comprends pas ou est le probleme.
Pourquoi la propriete n'est pas affichee correctement quand les 2
attributs son actifs ?

Merci pour votre aide

Alain.