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 un argument Color optionel


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 14
    Par défaut Définir un argument Color optionel
    Bonjour,

    J'aimerais définir une fonction avec un argument optional Color (System.Drawing) en affectant une valeur par défaut a cet argument s'il n'est pas utilisé. J'essaye le code suivant mais l'EDI VS2010 me renvoie le message d'erreur
    Une expression constante est requise
    en surlignant Color.Blue !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        Sub SetLabel(ByRef lblLabel As Label, ByVal sText As String, Optional ByVal oColor As System.Drawing.Color = Color.Blue)
            lblLabel.Text = sText
            lblLabel.ForeColor = oColor
        End Sub
    Auriez vous une idée pour résoudre cette question ?
    Merci. Xavier

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Comme le dit le message d'erreur, les valeurs par défaut des paramètres doivent être des constantes, or Color.Blue est une propriété.

    Une autre solution est d'utiliser la surcharge de méthode : tu crées une méthode avec le paramètre, et une sans le paramètre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        Sub SetLabel(ByRef lblLabel As Label, ByVal sText As String, ByVal oColor As System.Drawing.Color)
            lblLabel.Text = sText
            lblLabel.ForeColor = oColor
        End Sub
     
        Sub SetLabel(ByRef lblLabel As Label, ByVal sText As String)
            SetLabel(lblLabel, sText, Color.Blue)
        End Sub

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 14
    Par défaut
    Merci pour cette réponse et cette solution. Cela m'éclaire effectivement, je ne comprenais pas pourquoi Color.Blue ne renvoyait pas une constante. Je viens de VBA/VB6 et j'utilisais vbBlue.
    En réfléchissant a posteriori j'aurais peut être eu la possibilité d'utiliser un argument iColor as integer = Color.Blue.ToArgb et au sein de la fonction revenir a Color avec Color.FromArgb(iColor) mais la solution que tu proposes est plus élégante. Merci encore. Xavier

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

Discussions similaires

  1. Automatiser l'argument color d'un objet Graphics
    Par abysr dans le forum Débuter
    Réponses: 2
    Dernier message: 31/03/2015, 22h39
  2. [Xtext] Définir une coloration syntaxique sous Eclipse
    Par Christophe Genolini dans le forum Eclipse Modeling
    Réponses: 4
    Dernier message: 04/09/2013, 09h28
  3. Réponses: 2
    Dernier message: 18/08/2013, 12h22
  4. [XL-2007] Définir un(e) chemin/chaine comme l'argument 1
    Par Devour dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 09/06/2011, 12h10
  5. Pygments, définir ses propres colorations
    Par rambc dans le forum Bibliothèques tierces
    Réponses: 0
    Dernier message: 05/03/2009, 23h38

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