IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Définir une valeur par défaut d'une propriété [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2012
    Messages
    337
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2012
    Messages : 337
    Par défaut Définir une valeur par défaut d'une propriété
    Bonsoir,

    Je souhaiterais savoir comment on peut définir une valeur par défaut dans une propriété d'une classe.

    Admettons que je veuille que la valeur par défaut de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Private _Color As Color
        Public Property BackColor() As Color
            Get
                Return _Color
            End Get
            Set(ByVal value As Color)
                _Color = value
            End Set
    End Property
    soit rouge

    Autre question, dans le cas d'un CustomControl, comment faire pour faire apparaître nos propriétés personnalisées dans une catégorie précise de la grille de propriétés?

    Merci d'avance pour vos réponses.

  2. #2
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
        Private _Backcolor As Color = Color.BlueViolet
        <Category("Appearance"), Description("La couleur de fonds")> _
        Public Overridable Property Backcolor() As Color
            Get
                Return _Backcolor 
            End Get
            Set(ByVal value As Color)
                _Backcolor = value
            End Set
        End Property

  3. #3
    Membre émérite
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2012
    Messages
    337
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2012
    Messages : 337
    Par défaut
    J'ai manqué une occasion de me taire pour la valeur par défaut


    Merci Wallace1.

  4. #4
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par Rainui Voir le message
    J'ai manqué une occasion de me taire pour la valeur par défaut


    Merci Wallace1.
    ^^ Bien souvent quand on a la tête dans le guidon on ne voit pas ce qui saute aux yeux....

  5. #5
    Membre émérite
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2012
    Messages
    337
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2012
    Messages : 337
    Par défaut
    J'avoue que je commence à saturer...

    3 semaines que je suis sur le dev d'un TabControl en wpf...
    Faut pas être pressé

  6. #6
    Membre Expert
    Avatar de Sehnsucht
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Octobre 2008
    Messages : 847
    Par défaut
    Juste pour ajouter une (autre*) précision (*outre la remarque de Pol63 encore trop rapide ),
    Comme dans ce cas il n'y a aucun traitement particulier dans le getter/setter, on peut utiliser une Auto-implemented Property et directement lui affecter une valeur par défaut comme ceci:

    Public Overridable Property BackColor As Color = Color.Red

    Cordialement !

  7. #7
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    Citation Envoyé par Rainui Voir le message
    J'ai manqué une occasion de me taire pour la valeur par défaut
    oui et non

    il y a une dernière subtilité, System.ComponentModel.DefaultValue, qui permet de spécifier la valeur par défaut pour le designer
    quand on pose un control dans visual studio, pour chaque propriété ayant une valeur différente de celle défini dans cet attribut, vs créé une ligne de code pour lui mettre la valeur
    ca permet donc d'éviter quelques lignes de code à exécuter dans certains cas

    avec un exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    private _couleur as color = color.blue
    <defaultvalue(color.blue)> 
    property couleur (...)
    si on pose un controle en laissant bleu, aucune ligne de code généré
    si on change la couleur pour rouge vs enregistre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lecontrol.couleur = color.red
    sans l'attribut, même pour bleu il y aura la ligne de code, car il ne sait pas que tu as mis bleu par défaut dans ton code
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  8. #8
    Membre émérite
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2012
    Messages
    337
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2012
    Messages : 337
    Par défaut
    Merci Pol63 pour cette précision.

    Si j'ai bien compris, ça évite de surcharger le code créé par le designer quand une personne dépose le contrôle.

    En tout cas, mon TabControl vous remercie grandement et moi aussi

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 22/08/2010, 17h40
  2. Réponses: 6
    Dernier message: 17/05/2010, 21h26
  3. Réponses: 4
    Dernier message: 05/06/2007, 09h16
  4. Réponses: 2
    Dernier message: 15/03/2006, 09h44
  5. Réponses: 6
    Dernier message: 14/02/2006, 20h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo