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

Windows Forms Discussion :

Parcourir les contôles des Tabpages d'un Tabcontrol


Sujet :

Windows Forms

  1. #1
    Futur Membre du Club
    Inscrit en
    Octobre 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 10
    Points : 7
    Points
    7
    Par défaut Parcourir les contôles des Tabpages d'un Tabcontrol
    Bonjour à tous,

    Je développe une application dans laquelle l'un des Forms contient un Tabcontrol avec plusieurs onglets. Chaque onglet contient des combobox et des textbox.
    A un moment, je souhaite qu'une fonction de l'un de mes modules parcoure l'ensemble des onglets et me renvoie le nom de chacune des combobox/textbox.

    J'ai essayé avec une syntaxe de type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
            For Each cont As Control In My.Forms.FormVoulu.TabcontrolAParcourir.Controls
                MsgBox(cont.Name)
            Next
    ou avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
            For Each cont As Control In My.Forms.FormVoulu.Controls
                MsgBox(cont.Name)
            Next
    Dans aucun des deux cas, je ne parviens à "pénétrer" dans les onglets pour en extraire une quelconque propriétés des combobox/textbox. J'obtiens au mieux le nom des Tabpages.

    Pourriez-vous m'aider à résoudre ce problème?

    Un grand merci

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    My.Forms.FormVoulu est à proscrire !!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    dim tb as tabpage
    tb = montabcontrol.tabpages(numero ou clé du tabpage à parcourir)
     
    for each ctrl as control in tb.controls
      msgbox ctrl.name
    next
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Futur Membre du Club
    Inscrit en
    Octobre 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Parfait ça marche très bien !

    Si je peux encore user de ton temps, question facile je pense:

    Comment tester le type de contrôle? Je voudrais enregistrer uniquement les noms et valeurs de contrôles de types combobox/textbox.

    J'ai tenté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For Each ctrl As Combobox In tb.Controls
    mais là je suppose que ce qui ne va pas c'est que tous les contrôles de ma page ne sont pas des combobox.
    Je voudrais donc rajouter un "If ctrl est une combobox ou une textbox Then..." mais je ne trouve pas le nom de la méthode.

    Encore merci pour l'aide.

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if typeof ctrl is textbox then
     
    end if 
    if typeof ctrl is combobox then
     
    end if
    par contre ctrl étant déclaré en type control, meme si tu sais que c'est un combobox, tu peux seulement accéder aux propriétés de la classe control
    pour accéder aux propriétés du type, il faut utiliser directcast :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if typeof ctrl is comboboxthen
       dim cmb as combobox = directcast(ctrl, combobox)
       ' possibilité d'accéder à cmb.selecteditem par exemple
    end if
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Futur Membre du Club
    Inscrit en
    Octobre 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Un tout grand merci !

  6. #6
    Futur Membre du Club
    Inscrit en
    Octobre 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    Je me permets de faire ressortir le sujet car j'ai un souci un peu inattendu:

    Je souhaite coder une fonction dans un module qui m'affiche le nom puis le texte d'une textbox de MonFormulaire (en particulier, sur un tabpage de MonFormulaire). J'ai fait ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Public Sub afficher()
            Dim tb As TabPage
     
            tb = MonFormulaire.MonTabControl.TabPages(4)
            For Each ctrl As Control In tb.Controls
                If TypeOf ctrl Is TextBox Then
                    Dim txb As TextBox = DirectCast(ctrl, TextBox)
                    MsgBox(txb.Name)
                    MsgBox(txb.Text)
                End If
            Next
     
    End Sub
    Le souci est qu'il m'affiche sans problème le nom de la textbox, mais pas le contenu. Je m'étonne que la fonction puisse accéder au nom et pas au texte ! J'ai tenté avec et sans directcast, même résultat.

    Quelqu'un aurait-il une idée?

    Merci beaucoup

  7. #7
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    c'est qu'il n'a pas de texte peut etre !
    met un point d'arret tu verras mieux ce qui se passe
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  8. #8
    Futur Membre du Club
    Inscrit en
    Octobre 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    C'est bien mon souci, c'est que le texte qui se trouve dans une case n'est pas repéré par ma fonction.

    J'avais déjà essayé avec des points d'arrêts, au moment où le programme repère l'une de mes textbox, il indique bien le nom de la textbox mais pas son contenu, même s'il y en a un. C'est cela qui me chagrine un peu...

    Je suis sur que c'est une bêtise mais cela m'empêche de créer un code souple et compréhensible pour l'instant.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 12/04/2014, 22h32
  2. Parcourir les noms des onglets d'un fichier excel
    Par mouss4rs dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 21/02/2012, 11h47
  3. Comment supprimer les bordures des TabPages
    Par Cedric33 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 26/03/2009, 15h02
  4. Parcourir les colonnes des tables entrées en paramètre
    Par squall62 dans le forum VBA Access
    Réponses: 7
    Dernier message: 29/09/2008, 09h24
  5. Rendre invisible des tabpages d'un tabcontrol
    Par belocom dans le forum VB.NET
    Réponses: 10
    Dernier message: 25/05/2007, 15h42

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