Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Valeur par défaut d'une propriété de type struct dans le designe r

3 réponses
Avatar
ShadowFil
Bonjour,

Avec l'attribut [DefaultValue(valeur)], on peut définir une valeur par
défaut à une propriété affichée dans le designer de Visual Studio 2005.

Mais comment faire pour définir une valeur par défaut pour une propriété de
type Size ou Point ? Car mon UserControl a une propriété de type struct. Pour
la modifier directement dans le designer, j'ai créé un classe héritant de
TypeConverter. Ca marche. Mais il me reste à définir la valeur par défaut.

Merci pour votre aide.

3 réponses

Avatar
Laurent
je vais peut être dire une grosse bétise mais j'essaie, on sait jamais !!!

le type converter permet de convertir un string dans le type personnalisé,
donc essaie de mettre dans ton defaultvalue une valeur de type string

genre avec une propriété de type size :
[defaultvalue("10;125")]

--
Laurent M.
Développeur .NET


"ShadowFil" a écrit :

Bonjour,

Avec l'attribut [DefaultValue(valeur)], on peut définir une valeur par
défaut à une propriété affichée dans le designer de Visual Studio 2005.

Mais comment faire pour définir une valeur par défaut pour une propriété de
type Size ou Point ? Car mon UserControl a une propriété de type struct. Pour
la modifier directement dans le designer, j'ai créé un classe héritant de
TypeConverter. Ca marche. Mais il me reste à définir la valeur par défaut.

Merci pour votre aide.


Avatar
ShadowFil
J'y ai cru aussi. Mais non. Ca ne marche pas.

"Laurent" a écrit :

je vais peut être dire une grosse bétise mais j'essaie, on sait jamais !!!

le type converter permet de convertir un string dans le type personnalisé,
donc essaie de mettre dans ton defaultvalue une valeur de type string

genre avec une propriété de type size :
[defaultvalue("10;125")]

--
Laurent M.
Développeur .NET


"ShadowFil" a écrit :

> Bonjour,
>
> Avec l'attribut [DefaultValue(valeur)], on peut définir une valeur par
> défaut à une propriété affichée dans le designer de Visual Studio 2005.
>
> Mais comment faire pour définir une valeur par défaut pour une propriété de
> type Size ou Point ? Car mon UserControl a une propriété de type struct. Pour
> la modifier directement dans le designer, j'ai créé un classe héritant de
> TypeConverter. Ca marche. Mais il me reste à définir la valeur par défaut.
>
> Merci pour votre aide.


Avatar
Gilles TOURREAU
ShadowFil a pensé très fort :
Bonjour,

Avec l'attribut [DefaultValue(valeur)], on peut définir une valeur par
défaut à une propriété affichée dans le designer de Visual Studio 2005.

Mais comment faire pour définir une valeur par défaut pour une propriété de
type Size ou Point ? Car mon UserControl a une propriété de type struct. Pour
la modifier directement dans le designer, j'ai créé un classe héritant de
TypeConverter. Ca marche. Mais il me reste à définir la valeur par défaut.

Merci pour votre aide.



Tu peux utiliser 2 méthodes publiques qui seront appelé par le Designer
:

public bool ShouldSerializeXXXX()
{
}

public void ResetXXXX()
{
}

où XXXX est le nom de ta propriété.

Voici un exemple ;

public class ClassComplexe
{
private int a;
public static readonly ClassComplexe ValeurDéfaut = new
ClassComplexe(1664);

public ClassComplexe(int a)
{
this.a = a;
}

public int A
{
get { return this.a; }
set { this.a = value; }
}
}

public class MonContrôle
{

public ClassComplexe Prop()
{

}

public bool ShouldSerializeProp()
{
//Si Prop est la valeur par défaut, il ne faut pas
sérializer la propriété par le Designer

if (this.Prop == ClassComplexe.ValeurDéfaut)
return false;

return true;
}

public void ResetProp()
{
//Mettre Prop par sa valeur par défaut
this.Prop = ClassComplexe.ValeurDéfaut;
}
}

Dans cette exemple, la valeur par défaut de ta propriété Prop est
l'instance ValeurDéfaut est sera sérializé si celle-ci est différente
de cette valeur.

Bien sûr le code dans ShouldSerialize et Reset peut être plus complexe
! Tout dépend de ton besoin...

Cordialement

--
Gilles TOURREAU
Responsable informatique


Société P.O.S
Spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr