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 :

For each sur une classe hérité [Débutant]


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2012
    Messages : 25
    Points : 20
    Points
    20
    Par défaut For each sur une classe hérité
    Bonjour,

    J'ai crée une classe qui hérite de la classe checkbox, disant qu'elle s'appelle toto . le problème se pose lorsque je veux faire une boucle "For Each" sur la classe toto!

    L'erreur renvoyé est de type "impossible d'effectuer un cast de type ..Panel de la classe ....toto !

    Avez-vous une idée ?!

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 177
    Points : 4 489
    Points
    4 489
    Par défaut
    ben faut caster toto en checkbox au pire en control et pas en Panel
    Je ne suis qu'un pauvre débutant alors ne frappez pas si mes idées ne sont pas bonnes

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2012
    Messages : 25
    Points : 20
    Points
    20
    Par défaut
    Merci pour la rapidité ! mais je comprend pas!
    en fait voilà,
    j'ai un panel principal : panelCheckBoxesRoutes
    qui contient d'une part: newCheckBoxRoute (classe qui hérite de checkbox)
    et d'autre part: des panel PanelDblRoute qui lui contient des newCheckBoxRoute

    je veux brancher tout le contenu du panel principal à la procédure "PrendreRoute":

    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
      Dim checkboxRoute As New newCheckBoxRoute
            Dim PanelDblRoute As Panel
     
            For Each checkboxRoute In panelCheckBoxesRoutes.Controls
     
                AddHandler checkboxRoute.Click, AddressOf PrendreRoute
     
            Next
     
            For Each PanelDblRoute In panelCheckBoxesRoutes.Controls
                Dim test As newCheckBoxRoute
                For Each test In PanelDblRoute.Controls
     
                Next
            Next
    le message d'erreur:
    " Impossible d'effectuer un cast d'un objet de type 'System.Windows.Forms.Panel' en type 'WindowsApplication1.newCheckBoxRoute'."

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 177
    Points : 4 489
    Points
    4 489
    Par défaut
    Ca devrait etre quelque chose du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
            For Each _control As Control In panelCheckBoxesRoutes.Controls
               If TypeOf _control Is newCheckBoxRoute Then 
                    AddHandler control .Click, AddressOf PrendreRoute
               End If
               If TypeOf _control Is PanalDblRoute Then 
                    For Each _ctl As Control In _control.Controls
                          If TypeOf _ctl Is newCheckBoxRoute Then 
                          AddHandler ctl .Click, AddressOf PrendreRoute
                     Next
               End If
            Next
    Part contre j'ai un doute sur le fait que se soit la bonne solution
    Je ne suis qu'un pauvre débutant alors ne frappez pas si mes idées ne sont pas bonnes

  5. #5
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Bonjour,

    J'avais fait quelques chose comme BenoitM, mais il a été plus rapide, du coup je te met aussi une version récurssive, pour traiter quelques soit le nombre d'imbrication de tes panels.

    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
        Sub AttribueHandler()
            For Each ctrl As Control In panelCheckBoxesRoutes.Controls
                If TypeOf ctrl Is newCheckBoxRoute Then
                    AddHandler ctrl.Click, AddressOf PrendreRoute
                Else
                    If TypeOf ctrl Is Panel Then
                        For Each ctrl2 As Control In ctrl.Controls
                            If TypeOf ctrl2 Is newCheckBoxRoute Then
                                AddHandler ctrl2.Click, AddressOf PrendreRoute
                            End If
                        Next
                    End If
                End If
            Next
        End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        Sub AttribueHandler(ByVal pan As Panel)
            For Each ctrl As Control In pan.Controls
                If TypeOf ctrl Is newCheckBoxRoute Then
                    AddHandler ctrl.Click, AddressOf PrendreRoute
                Else
                    If TypeOf ctrl Is Panel Then
                        AttributHandler(ctrl)
                    End If
                End If
            Next
        End Sub
    A+, Hervé.
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  6. #6
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2012
    Messages : 25
    Points : 20
    Points
    20
    Par défaut
    Super ! ça marche!
    Merci bcp !!!

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

Discussions similaires

  1. [XSLT 2.0] [JAVA] for-each sur une liste
    Par benoit31 dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 05/07/2011, 16h18
  2. [AC-2003] boucle For Each sur les donnees d'une table
    Par TheRRb dans le forum VBA Access
    Réponses: 6
    Dernier message: 20/07/2009, 12h15
  3. Réponses: 1
    Dernier message: 22/04/2008, 21h25
  4. Réponses: 14
    Dernier message: 14/03/2005, 09h16
  5. [MFC] Problème pointeur sur une classe
    Par mick74 dans le forum MFC
    Réponses: 7
    Dernier message: 14/04/2004, 14h17

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