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


Sujet :

VB.NET

  1. #1
    Membre régulier
    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  
    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 chevronné
    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 régulier
    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é
    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

###raw>template_hook.ano_emploi###