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 :

Quel est l'index qui sert pour les For Each ?


Sujet :

VB.NET

  1. #1
    Membre régulier Avatar de Nixar
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 302
    Points : 85
    Points
    85
    Par défaut Quel est l'index qui sert pour les For Each ?
    Bonjour à tous,
    Dans une méthode, je passe sur tous les contrôles présents sur une WinForm. Pour ce faire je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For each Ctrl as Control In Form1
    ' traitement en fonction du contrôle
    Next
    Tout fonctionne si ce n'est que je souhaiterais définir quels contrôles doivent être balayés les premiers. Je pensais que l'attribut TabIndex définissait l'ordre de passage dans la boucle For, mais en mode pas-à-pas je ne retrouve pas cet ordre.

    Qu'est-ce qui définit l'ordre de passage dans la boucle For each?

    Merci de vos réponses.

    Nixar

  2. #2
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    Je ne comprends pas ton probleme... Tu veux lister en premier un certain type de controle ?

    Dans ce cas fait 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
    For Each Txt as TextBox in me.Controls
    'ton code pour les textbox
    Next
     
    'sinon
    For Each Ctrl in me.Controls
        If TypeOf Ctrl is TextBox then 'si c'est un textbox
     
        ElseIf TypeOf Ctrl is CheckBox Then
     
        Else 'sinon
     
        End If
    Next
    ++

  3. #3
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    Une iteration avec une boucle for each est remplacée par le compilateur par l'utilisation de la méthode GetEnumerator(). Ensuite cet Enumerator est parcouru dans une boucle while en utilisant la méthode MoveNext() comme condition.

  4. #4
    Membre régulier Avatar de Nixar
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 302
    Points : 85
    Points
    85
    Par défaut
    Bonjour à tous,

    @Aspic : Oui j'ai pensé à cette méthode, mais j'ai beaucoup de contrôles répartis dans plusieurs TableLayoutPanel et dans plusieurs Panels. Ce que je souhaite c'est savoir si un attribut de la classe contrôle (genre TabIndex) peut être utilisé comme index de balayage.

    @ SaumonAgile : Qu'utilise MoveNext comme index dans sa liste d'attente? Dans mon cas, qu'est-ce qui fait qu'un contrôle va passer avant un autre dans l'énumération?

    Merci de vos réponses.

  5. #5
    Expert confirmé
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Points : 4 388
    Points
    4 388
    Par défaut
    Excuse mais j'ai pas tres bien compris ce que tu voulais faire...

  6. #6
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    Il faut que tu regardes dans le méthode GetEnumerator(). Il me semble que les controles sont parcourus dans l'ordre dans lequel ils sont ajoutés.

Discussions similaires

  1. Quel est le meilleur client graphique pour MySQL ?
    Par Community Management dans le forum MySQL
    Réponses: 205
    Dernier message: 20/06/2023, 12h01
  2. Réponses: 7
    Dernier message: 20/05/2010, 18h04
  3. Réponses: 18
    Dernier message: 31/07/2007, 18h29
  4. Quel est le meilleur client graphique pour MS SQL ?
    Par tox dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 08/10/2005, 13h41
  5. Quel est l'équivalent de Findcomponent pour les Forms ?
    Par Ben_Le_Cool dans le forum Composants VCL
    Réponses: 12
    Dernier message: 23/09/2005, 13h48

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