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 :

Pourquoi sender.BorderColor fonctionne mais pas sender.BorderStyle


Sujet :

VB.NET

  1. #1
    Membre régulier

    Profil pro
    Retraité (Travailleur autonome)
    Inscrit en
    Octobre 2008
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 76
    Localisation : Canada

    Informations professionnelles :
    Activité : Retraité (Travailleur autonome)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 82
    Points : 75
    Points
    75
    Billets dans le blog
    1
    Par défaut Pourquoi sender.BorderColor fonctionne mais pas sender.BorderStyle
    Bonjour à tous,

    J'utilise Visual Studio 2013.

    J'ai le code suivant pour gérer la couleur du texte et l'arrière-plan de quelques Labels.
    J'aimerais ajouter une bordure au Label mais l'instruction "BorderStyle" provoque une erreur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Public Sub Label_MouseEnter(sender As Object, e As EventArgs)
         sender.ForeColor = Color.Red
         sender.BackColor = Color.White
         sender.BorderStyle = BorderStyle.FixedSingle
    End Sub
    Pourquoi? Comment remédier à cette situation?

    Merci

  2. #2
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations forums :
    Inscription : Mars 2011
    Messages : 105
    Points : 153
    Points
    153
    Par défaut
    Bonjour,

    Quel est le message d'erreur ?
    J'ai essayé le code ci-dessous avec VS2010 express et VS community 2017, et pas de problème.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     Private Sub Label1_MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs) Handles Label1.MouseEnter
            sender.ForeColor = Color.Red
            sender.BackColor = Color.White
            sender.BorderStyle = BorderStyle.FixedSingle
        End Sub
     
        Private Sub Label1_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles Label1.MouseLeave
            sender.ForeColor = Color.Black
            sender.BackColor = Color.FromKnownColor(KnownColor.Control)
            sender.BorderStyle = BorderStyle.None
        End Sub

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    déjà ton visual studio est mal paramétré (c'est le cas pour vous 2 je pense), il faut mettre option explicit sur ON dans les options de visual basic

    ceci empêche la permission qu'il y a par défaut en vb de pouvoir laisser écrire n'importe quoi et que ca plante à l'exécution
    tout est vérifié à la compilation et c'est souligné dans le code dès qu'on écrit quelque chose de potentiellement incorrect

    en l'occurrence sender est de type Object et la classe Object n'a pas de propriété ForeColor ou autre, donc ce n'est pas juste d'écrire ca
    vu qu'on sait que sender est de type label il faut caster directement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dim mylabel = Directcast(sender, Label)
    mylabel.ForeColor = ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  4. #4
    Membre régulier

    Profil pro
    Retraité (Travailleur autonome)
    Inscrit en
    Octobre 2008
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 76
    Localisation : Canada

    Informations professionnelles :
    Activité : Retraité (Travailleur autonome)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 82
    Points : 75
    Points
    75
    Billets dans le blog
    1
    Par défaut
    Merci pour les réponses.

    Je dois mentionner que l'option Explicit est déjà sur ON, tout comme l'option Infer. Par contre, l'option Strict est sur OFF.

    Le message d'erreur est le suivant:

    Le membre public 'BorderStyle' du type 'FormTest' est introuvable.

    J'ai copié le texte complet du message d'erreur et je vous le soumets.

    L'exception System.MissingMemberException n'a pas été gérée
    HResult=-2146233070
    Message=Le membre public 'BorderStyle' du type 'FormTest' est introuvable.
    Source=Microsoft.VisualBasic
    StackTrace:
    à Microsoft.VisualBasic.CompilerServices.Symbols.Container.GetMembers(String& MemberName, Boolean ReportErrors)
    à Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateSet(Object Instance, Type Type, String MemberName, Object[] Arguments, String[] ArgumentNames, Type[] TypeArguments, Boolean OptimisticSet, Boolean RValueBase, CallType CallType)
    à Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateSet(Object Instance, Type Type, String MemberName, Object[] Arguments, String[] ArgumentNames, Type[] TypeArguments)
    à PARAXL_Outils.De_Base.Label_MouseEnter(Object sender, EventArgs e) dans D:\Documents\Visual Studio 2013\Projects\PARAXL-Outils\PARAXL-Outils\De_Base.vb:ligne 5632
    à PARAXL_Outils.FormTest.FormTest_Activated(Object sender, EventArgs e) dans D:\Documents\Visual Studio 2013\Projects\PARAXL-Outils\PARAXL-Outils\FormTest.vb:ligne 9
    à System.Windows.Forms.Form.OnActivated(EventArgs e)
    à System.Windows.Forms.Form.set_Active(Boolean value)
    à System.Windows.Forms.Form.WmActivate(Message& m)
    à System.Windows.Forms.Form.WndProc(Message& m)
    à System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
    à System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
    à System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
    InnerException:

    Pour moi c'est du chinois

    Je vais quand même essayer la solution de Pol63. Mais j'ai besoin de savoir si je dois coder ça dans le formulaire ou dans le module qui gère les MouseEnter...

    Merci

  5. #5
    Membre régulier

    Profil pro
    Retraité (Travailleur autonome)
    Inscrit en
    Octobre 2008
    Messages
    82
    Détails du profil
    Informations personnelles :
    Âge : 76
    Localisation : Canada

    Informations professionnelles :
    Activité : Retraité (Travailleur autonome)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 82
    Points : 75
    Points
    75
    Billets dans le blog
    1
    Par défaut
    Re-Bonjour,

    Pardonnez-moi, je viens de mettre le doigt sur la source du problème.

    Dans le Sub Form_Activate, je faisais un appel à Label_MouseEnter(lblBouton1, e) avant même que le AddHandler soit exécuté.

    J'ai déplacé la ligne de code dans le Sub Form_Load, après l'exécution du AddHandler. Tout est rentré dans l'ordre.

    Merci.

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    Oui ça doit être option strict qu'il faut mettre sur on
    Si en l'activant ça te souligne plein de trucs en rouge dans le code c'est le bon 😋
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

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

Discussions similaires

  1. jar executable fonctionne mais pas trop
    Par ng.phung dans le forum Langage
    Réponses: 6
    Dernier message: 02/05/2007, 09h26
  2. mysql fonctionne, mais pas avec un port
    Par spekal dans le forum Installation
    Réponses: 2
    Dernier message: 23/01/2007, 18h30
  3. [UBUNTU] La gravure fonctionne mais pas le démarrage
    Par khaskhos dans le forum Ubuntu
    Réponses: 12
    Dernier message: 18/01/2007, 15h37
  4. Flash - aperçu fonctionne mais pas swf seul
    Par LeBernie dans le forum Flash
    Réponses: 11
    Dernier message: 17/11/2006, 17h06
  5. [FLASH 8] : FLA qui fonctionne mais pas le SWF
    Par xtaze dans le forum Flash
    Réponses: 9
    Dernier message: 24/10/2006, 09h14

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