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 :

la méthode for each sur plusieurs controls [Débutant]


Sujet :

VB.NET

  1. #1
    Membre du Club
    Homme Profil pro
    instituteur
    Inscrit en
    juillet 2018
    Messages
    373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : juillet 2018
    Messages : 373
    Points : 58
    Points
    58
    Par défaut la méthode for each sur plusieurs controls
    bonjour l'équipe.
    je voudrais savoir si il y a un moyen de réécrire ce code qui boucle sur tous objets du formulaire.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     For Each ctrl As Control In Me.Controls
                If TypeOf ctrl Is TextBox Then
                    ctrl.Text = ""
                End If
            Next
            For Each ctrls As Control In Me.Controls
                If TypeOf ctrls Is ComboBox Then
                    ctrls.Text = ""
     
                End If
            Next
    mon code marche très bien mais y'a t'il une autre écriture? merci
    j'ai voulu écrire ce code suivant mais la manière dont je raisonne ne concorde pas avec le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     For Each ctrl As Control In Me.Controls
                If TypeOf ctrl Is TextBox and combobox Then
                    ctrl.Text = ""
                End If
            Next

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    janvier 2012
    Messages
    4 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : janvier 2012
    Messages : 4 905
    Points : 10 173
    Points
    10 173
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Là, tu fais du VBA en VB.net. Mais, n'en déplaise à un certain monsieur, VB.net est en avance sur VBA. Et, sauf horreur de ma part, tu devrais pouvoir te faire une List(of ComboBox) et une list(of Textbox) et itérer tes deux listes, sans itérer tous tes contrôles. Mais là, je n'ai pas le temps de tester mon affaire.

    P.S. Une œuvre très intéressante et pas chère. Toujours utile de l'avoir à portée du clavier.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  3. #3
    Membre éprouvé Avatar de Phil Rob
    Homme Profil pro
    Enseignant
    Inscrit en
    novembre 2013
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : novembre 2013
    Messages : 660
    Points : 1 102
    Points
    1 102
    Par défaut
    Bonjour,

    Je suis du même avis que Clément sauf que s'il y a peu de composants sur le Form, une petite boucle fait bien l'affaire.
    Le code suivant en VB.Net fera la même chose que ta boucle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
            For Each Ctrl As Object In Me.Controls
                Dim Type As String = Ctrl.GetType.Name
                If Type = "TextBox" Or Type = "ComboBox" Then   ' Il suffit d'étendre cette condition aux autres types que tu veux (faut qu'ils aient une propriété Text)
                    Ctrl.Text = ""
                End If
            Next
    Bonne journée,

  4. #4
    Membre du Club
    Homme Profil pro
    instituteur
    Inscrit en
    juillet 2018
    Messages
    373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : juillet 2018
    Messages : 373
    Points : 58
    Points
    58
    Par défaut
    merci bien à vous. etant donné que je suis novice en vb.net rien de que de me faire avoir.
    merci pour le coup de pouce

  5. #5
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    juillet 2006
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : juillet 2006
    Messages : 3 893
    Points : 4 199
    Points
    4 199
    Par défaut
    Ca remonte à loin mais il me semble qu'on pouvait aussi directement filtrer le type de contrôles sur lequels on voulait boucler. Qqch du genre (écrit de tête donc à valider) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    For Each Ctrl As Object In Me.Controls.OfType(TextBox)
        Ctype(Ctrl, TextBox).Text = ""    
    Next
    Et je pense qu'on peut mettre plusieurs OfType. Enfin à creuser si nécessaire.
    Kropernic

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

Discussions similaires

  1. [AC-2010] Boucle For each sur plusieurs zones
    Par SkyCorp dans le forum IHM
    Réponses: 4
    Dernier message: 10/04/2016, 21h49
  2. Réponses: 4
    Dernier message: 28/06/2014, 19h40
  3. Réponses: 7
    Dernier message: 09/04/2009, 09h34
  4. Faire un For Each sur le MemberShip
    Par zooffy dans le forum ASP.NET
    Réponses: 2
    Dernier message: 19/07/2007, 11h49
  5. boucle for each sur un groupe
    Par LeXo dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 06/04/2007, 21h38

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