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 :

Problème de fonctionnement du code


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Septembre 2009
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Maroc

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2009
    Messages : 188
    Par défaut Problème de fonctionnement du code
    Bonsoir,

    Je n'ai pas su comment nommer mon message. Il s'agit d'un petit problème lors de l'exécution de mon code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Dim bool As Boolean = False
    For Each Ctrl As CheckBox In Me.Controls.OfType(Of CheckBox)()
         If Ctrl.Checked = True Then
               bool = True
         End If
    Next
    If bool = False Then
        MessageBox.Show("Attention !!! Risque de mort", "TOTO", MessageBoxButtons.OK, MessageBoxIcon.Stop)
    End If
    quand mes checkbox sont sur la Form, le code marche très bien mais quand je mets mes checkbox dans un TabControl, le programme ne reconnait plus mes checkbox...

    Pourriez vous m'aider ?

    Merci

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 200
    Par défaut
    c'est un problème de parenté
    me.controls te donnent tous les controles qui sont sur le form
    si tu mets un groupbox avec des boutons sur le form, me.controls contiendra bien le groupbox, mais pas les boutons
    me.groupbox.controls contiendra les boutons

    si tes controles ont la bougeotte tu peux faire un traitement récursif
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre Expert
    Avatar de Sehnsucht
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Octobre 2008
    Messages : 847
    Par défaut
    Bonjour,

    Ceci est tout à fait normal, ton code parcourt les contrôles "appartenant" au Form en ne cherchant que les CheckBox mais cette recherche n'est pas "récursive" (si un contrôle contient d'autres contrôles ceux-ci ne sont pas vérifiés) telle quelle.

    De plus un TabControl, contient des TabPage et ce sont eux qui contiennent les contrôles sur un onglet.

    Par conséquent il faut que tu remplaces Me par le nom de ton TabPage de ton TabControl qui contient les CheckBox pour que cela fonctionne.

    De plus, le code que tu exécutes passe un Boolean à True si au moins une CheckBox est cochée, dans ce cas tu peux réécrire ceci de la sorte:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim bool As Boolean = 
            monTabPage.Controls.OfType(Of CheckBox)
                               .Any(Function(cb) cb.Checked)
    Cela permettra au passage au code de quitter l'itération dès que la condition sera remplie.

    Edit: Grilled by Pol63 pour la première partie

    Cordialement !

  4. #4
    Membre confirmé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Septembre 2009
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Maroc

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2009
    Messages : 188
    Par défaut
    C'est l'idée que j'ai eu, sauf que je viens de mettre mes checkbox dans un groupbox, car auparavant j'avais mis ces derniers dans un objet que Controls ne reconnait pas autant que membre de celle ci... j'ai rectifié cela en ajoutant un groupbox...

    Merci c résolu )))

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 07/06/2015, 12h55
  2. Problème de fonctionnement avec Code::Blocks
    Par turbo225 dans le forum Code::Blocks
    Réponses: 1
    Dernier message: 20/12/2008, 12h14
  3. Réponses: 7
    Dernier message: 28/10/2008, 22h28
  4. XSLT : Problème de fonctionnement d'Inline Code C#
    Par Cilaos dans le forum SharePoint
    Réponses: 3
    Dernier message: 30/11/2007, 10h33
  5. [VB.net]problème de conversion de code c# vers VB.net
    Par cladsam dans le forum Windows Forms
    Réponses: 2
    Dernier message: 18/10/2005, 14h07

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