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 :

Parcourir les contrôles d'une form [Débutant]


Sujet :

VB.NET

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2010
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations forums :
    Inscription : Juillet 2010
    Messages : 120
    Points : 77
    Points
    77
    Par défaut Parcourir les contrôles d'une form
    Bonjour,

    Je ne comprends pas pourquoi ce code génère une erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For Each tb As TextBox In Me.Controls
                tb.Text = ""
            Next
    L'erreur est :
    Impossible d'effectuer un cast d'un objet de type 'System.Windows.Forms.Button' en type 'System.Windows.Forms.TextBox'.
    Pourquoi est ce que VS me parle de System.Windows.Forms.Button ?
    D'avance merci !

  2. #2
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    Hello,

    Parce que quand tu fais appels à Me.controls, il va chercher tous tes controls... donc les boutons, les textbox et autres...

    Donc ta boucle cherche le premier control, un bouton, et là il essaie de le caster dans un Textbox vu que dans ta boucle tu castes tous les controls dans ta variable tb.

    Il faut plutôt faire un truc du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For each ctr as control in Me.Controls
    puis tester ce control :

    La je me souviens plus, si on test le nom "textebox" ou si faut tester le type textbox, je pense que tu vas trouver facilement.
    L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2010
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations forums :
    Inscription : Juillet 2010
    Messages : 120
    Points : 77
    Points
    77
    Par défaut
    Merci pour ton aide.
    N'arrivant pas à utiliser GetType, j'ai utilisé TypeOf :
    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 Then
                    ctrl.Text = ""
                End If
            Next
    Et ça fonctionne.
    Encore merci et bonne journée

  4. #4
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    1 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 048
    Points : 2 201
    Points
    2 201
    Par défaut
    J'attire ton attention sur le fait qu'un control tel qu'un panel possède sa propre collection de control (pouvant contenir des textbox par exemple).

    Pour être exact, ta boucle doit aussi vérifier la propriété HasChildren du Control et le cas échant faire un appel récursif sur la liste interne des controls.

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

Discussions similaires

  1. [Débutant] Lancer la même sub pour tous les contrôles d'une form
    Par chtinis dans le forum Windows Forms
    Réponses: 1
    Dernier message: 08/10/2014, 17h07
  2. Parcourir les controls d'une form
    Par zit_zit dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/10/2008, 18h59
  3. parcourir tous les textbox d'une form
    Par olibara dans le forum C#
    Réponses: 2
    Dernier message: 23/09/2008, 12h28
  4. Réponses: 5
    Dernier message: 28/03/2008, 17h18
  5. Examiner les contrôles d'une forme
    Par soso78 dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 02/04/2007, 14h50

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