Utilisation attributs user controls

RV2931 Messages postés 185 Date d'inscription samedi 21 mai 2005 Statut Membre Dernière intervention 16 juillet 2016 - 26 mars 2008 à 16:38
RV2931 Messages postés 185 Date d'inscription samedi 21 mai 2005 Statut Membre Dernière intervention 16 juillet 2016 - 26 mars 2008 à 22:12
Bonjour,

Je galère pas mal avec l'édition de user contrôls. Je n'arrive pas à voir où et quand les variables initialisées dans le panneau de propriété de l'objet dans Visual Studio sont véritablement affectées et réutilisable.

Voici un truc qui ressemble à mon code :

public class MyClass : System.Windows.Forms.UserControl
{
    private String Attr;

    [Category("Comportement")]
    [Browsable(true)]
    [DefaultValue("myString")]
    public String MyAttr
    {
        get{return this.Attr;}
        set{this.Attr=value;}
    }
    public MyClass ()
    {
            // Cet appel est requis par le Concepteur de formulaires Windows.Forms.
            InitializeComponent();  => BreakPoint
    }
}

Ce que je comprend pas c'est qu'au breakpoint , la variable this.Attr n'a pas été initialisée et vaut "null", il ne prend jamais la valeur par défaut, et modifier la valeur dans l'editeur intellisens "ou truc comme ça" ne change rien, elle vaut toujours "null" lors de l'execution dans la fonction InitializeComponent. Je n'arrive donc pas à utilisé les propriétés de mon user control, si quelqu'un peut me dire ce que je ne fait pas bien ???

Merci

Hervé

L'intelligence est la chose la mieux répartie chez l'homme, car quoi qu'il en soit pourvu, il a toujours l'impression d'en avoir assez. "Descartes"

4 réponses

sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
26 mars 2008 à 16:46
L'attribut DefaultValue ne sert pas à mettre une valeur par défaut dans ta variable... mais a éviter au designer de sérialiser ta propriété si sa valeur = DefaultValue.

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
26 mars 2008 à 16:51
Salut,
Oui, et j'ajouterais que si tu veux une valeur par défaut, il faut la spécifiée directement sur la variable de classe:

private string attr = "myAttr";

<hr />
-My Blog-
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
26 mars 2008 à 16:54
j'avais oublié de le préciser... merci Bidou ;)

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
0
RV2931 Messages postés 185 Date d'inscription samedi 21 mai 2005 Statut Membre Dernière intervention 16 juillet 2016
26 mars 2008 à 22:12
Merci,

Faut que je reteste ça mais j'avais déjà essayé d'initialiser ma variable à sa déclaration, et elle gardait toujours cette valeur, elle ne semblait pas prendre celle que j'avais modifier dans le panneau de propriétés après l'ajout de mon user control dans le designer. En fait, lorsque je modifie mon attribut, je modifie la couleur de mon user control, et ça fonctionne très bien dans le designer, mais lorsque j'exécute, mon attribut reprend automatiquement la valeur jsutement mise par défaut lors de la création de la variable, ce qui fait que dans le designer ça smeble fonctionner mais lors de l'exécution, il garde la couleur par défaut ... :o(

Je vais essayer de mettre mon code demain, mais il ressemble grosso modo à celui-là, en initialisant Att biensur.

L'intelligence est la chose la mieux répartie chez l'homme, car quoi qu'il en soit pourvu, il a toujours l'impression d'en avoir assez. "Descartes"
0
Rejoignez-nous