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 :

demande d'aide pour corriger 2 erreurs en vb.net [Débutant]


Sujet :

VB.NET

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 57
    Points : 41
    Points
    41
    Par défaut demande d'aide pour corriger 2 erreurs en vb.net
    Bonsoir,
    à titre d'exercice j'ai écrit un petit programme à l'aide de Visual studio express 2010 en VB. Le premier bouton déclenche l'affichage d'une ampoule allumée, le second bouton une ampoule éteinte.

    Dans le Form il y a donc 2 boutons et une PictureBox.
    Quand on clique sur un bouton, la procédure liée à cet événement modifie une propriété de la classe et passe à la procédure Affichage. Celle-ci teste la propriété et affiche l'image correspondante.
    Idem pour le second bouton.

    J'ai 2 erreurs que je ne parviens pas à résoudre.

    La première se trouve dans la procédure déclenchée par le clic sur un bouton:
    "La clause Handler requiert une variable WithEvents definie dans le type conteneur ou l'un de ses types de base"

    La seconde se trouve dans la procédure Affichage:
    "Une référence à un membre non partagé requiert une référence d'objet"

    Je joint le code si quelqu'un veut bien y jeter un oeil.

    Merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    Public Class Form1
        Public Class Lampes
            Public ampoule As New Lampes With {.allume = True}
            Public allume As Boolean
     
            Public Sub BtnAllumer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnAllumer.Click
                ampoule.allume = True
                Affichage()
            End Sub
            Public Sub BtnEteindre_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnEteindre.Click
                ampoule.allume = False
                affichage()
            End Sub
            Public Sub affichage()
                If ampoule.allume = True Then
                    PictureBox1.ImageLocation = "D:\Mes Documents\Visual Studio 2010\Projects\Allumee.jpg"
                Else
                    PictureBox1.ImageLocation = "D:\Mes Documents\Visual Studio 2010\Projects\Eteinte.jpg"
                End If
            End Sub
        End Class
     
    End Class

  2. #2
    Membre régulier
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2013
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2013
    Messages : 121
    Points : 77
    Points
    77
    Par défaut
    Une Classe dans une classe?

    Essai cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    Public Class Form1
     
    Public allume As Boolean = True
     
        Private Sub BtnAllumer_Click(sender As Object, e As EventArgs) Handles BtnAllumer.Click
            allume = True
            affichage()
        End Sub
     
        Public Sub BtnEteindre_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnEteindre.Click
            allume = False
            affichage()
        End Sub
        Public Sub affichage()
             If allume = True Then
                  PictureBox1.ImageLocation = "D:\Mes Documents\Visual Studio 2010\Projects\Allumee.jpg"
             Else
                 PictureBox1.ImageLocation = "D:\Mes Documents\Visual Studio 2010\Projects\Eteinte.jpg"
            End If
        End Sub
     
    End Class

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

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2012
    Messages : 330
    Points : 774
    Points
    774
    Par défaut
    Bonjour,

    Avec un contrôle de type CheckBox dont on met l'apparence sur "Button" ça marche bien aussi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Private Sub cbEtatLampe_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles cbEtatLampe.CheckedChanged
            If cbEtatLampe.Checked = True Then
                PictureBox1.ImageLocation = "C:\Users\Yves\Pictures\Essai.jpg"
                cbEtatLampe.Text = "Eteindre"
            Else
                PictureBox1.ImageLocation = "C:\Users\Yves\Pictures\Essai1.jpg"
                cbEtatLampe.Text = "Allumer"
            End If
        End Sub

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 57
    Points : 41
    Points
    41
    Par défaut
    Merci de vos réponse.

    Je ne l'ai pas précisé mais le but de ce programme était de me familiariser avec les classes, les objets... que je découvre.
    Ce n'est peut-être pas un exemple très bien choisi mais j'ai fait au plus simple.

    Une classe dans une classe, c'est de là que vient mon problème ?

  5. #5
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    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 177
    Points : 25 125
    Points
    25 125
    Par défaut
    une classe dans une classe c'est autorisé, ca existe même dans le framework

    par contre ta sous classe ne connait rien de ce qui est dans la classe parente
    il n'y a pas de lien entre les classes selon l'endroit où elles se trouvent, qu'elle soit à l'intérieure d'une classe ou non c'est juste pour le rangement
    donc ta sous classe ne connait pas le bouton

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 57
    Points : 41
    Points
    41
    Par défaut
    Bonsoir,

    J'ai pu situer où se trouvait mon erreur. Les explications de Pol63 m'ont bien aidé.
    J'ai déplacé la ligne de création de la classe "Lampes" dans un module à part et j'ai mis la création de l'attribut "allume" dedans. Et ainsi cela fonctionne.

  7. #7
    Membre régulier
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2013
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2013
    Messages : 121
    Points : 77
    Points
    77
    Par défaut
    Une classe dans une classe ?

    Je sais que ça existe mais je ne trouve pas l'utilité dans son exemple...

    dans tous les cas merci pol63 et à tous qui ont essayé d'aider les autres.

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

Discussions similaires

  1. Cherche aide pour corriger erreur au démarrage
    Par odb000856 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 20/09/2010, 15h38
  2. [MySQL] Demande d'aide pour une erreur php
    Par spespam dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 01/12/2008, 17h22
  3. Aide pour corriger des erreurs
    Par Premium dans le forum C
    Réponses: 32
    Dernier message: 03/06/2006, 17h58

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