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 :

Boucle sur tous les control et sous-control d'une form


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Janvier 2018
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2018
    Messages : 46
    Par défaut Boucle sur tous les control et sous-control d'une form
    Bonjour,

    je souhaite agir sur la proriété checked de tous les controles de type checkbox dans un panel.

    J'utilise donc la procédure ci-dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Public control As Control
    Public Chkb As CheckBox
     
    For Each control In Me.Panel1
        If TypeOf control Is CheckBox Then
            Chkb = control
            If Chkb.Name <> sender Then
                Chkb.Enabled = Not sender.checked
            End If
        End If
    Next
    je cherche maintenant à appliquer cela à l'ensemble de ma form.

    Etant donné que ma form contient des panel qui eux mêmes contiennent des objets, et qu'un panel possède sa propre collection de control, comment puis-je procéder ?

    merci d'avance

  2. #2
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Bonsoir,

    Tu peux tout simplement rajouter une conditionnelle pour tester le type avec :

    ou :

    ou alors (combiné à Nothing) :

    A+

  3. #3
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    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 204
    Par défaut
    méthode récursive
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  4. #4
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut
    Bonjour

    Comme dit par Pol63,il faut une méthode recursive pour faire ce boulot...,
    Car les Controls Winform appartiennent à des "hiérarchies"

    Exemple de code .vb qui permet de rechercher tous les Controls enfants TextBox du "Control appelant" et de resetter leur prop Text...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    Public Class Form1
     
        Private Sub ClearTextBoxes(ByVal ctrlParent As Control)
            Dim ctrl As Control
            For Each ctrl In ctrlParent.Controls
                If TypeOf ctrl Is TextBox Then
                    ctrl.Text = ""
                End If
                ' If the control has children, 
                ' recursively call this function
                If ctrl.HasChildren Then
                    ClearTextBoxes(ctrl)
                End If
            Next
        End Sub
     
    End Class
    bon code...

Discussions similaires

  1. [XL-2010] boucler sur tous les controles d'une multipage
    Par bboy-eazy dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 28/04/2016, 15h55
  2. Créer un [Event procédure] sur tous les controles.
    Par SeaWolf601 dans le forum IHM
    Réponses: 9
    Dernier message: 21/01/2009, 15h22
  3. Réponses: 6
    Dernier message: 22/06/2007, 10h50
  4. Accés direct à TOUS les controls d'une form
    Par olsimare dans le forum Windows Forms
    Réponses: 5
    Dernier message: 07/02/2007, 00h39
  5. [JDBC]Boucle sur tous les éléments du ResultSet
    Par Terminator dans le forum JDBC
    Réponses: 1
    Dernier message: 22/09/2005, 19h30

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