locked
checkbox dans groupbox RRS feed

  • Question

  • Bonjour,
    je voudrais que toutes les checkbox d'un groupbox soient 'checked' en même temps.
    j'ai écrit ce code (GbEventsS1 = mon groupbox)
    Dim cb As CheckBox
            For Each cb In Me.GbEventsS1.Controls
                cb.Checked = True
            Next
    cela fonctione au poil s'il n'y a que des checkbox dans le groupbox mais dès qu'il y a un bouton cela ne fonctionne plus.
    Pouvez-vous m'aider à modifier le code pour le faire quelque soit les autres controls dans ma groupbox

    Merci beaucoup Tchouny

    tchouny
    samedi 12 décembre 2009 17:13

Réponses

  • Tu peux ajouter un test sur le type de ton élément :

     For Each cb In Me.Controls
                If TypeOf cb Is CheckBox Then
                    ..........
                End If
            Next
    • Proposé comme réponse V HELLIN lundi 14 décembre 2009 17:37
    • Marqué comme réponse Gabriel Mongeon mercredi 16 décembre 2009 18:26
    lundi 14 décembre 2009 09:49
  • Oui Bonne idées, seulement vous allez avoir du mal a caster un autre control dans la variable cb qui est un combobox.
    Donc l'instruction for each risque de ne pas fonctionner, je vous suggere de passer par une variable de type control pour dérouler la collection controls.

    Dim

     

    cb As CheckBox

     

    Dim Ctrl As System.Windows.Forms.Control

     

    For Each Ctrl In Me.GbEventsS1.Controls

     

    If TypeOf Ctrl Is CheckBox Then

    cb = Ctrl

    cb.Checked =

    True

     

    End If

     

    Next


    Bon Codage Josselin
    lundi 14 décembre 2009 14:00

Toutes les réponses

  • Tu peux ajouter un test sur le type de ton élément :

     For Each cb In Me.Controls
                If TypeOf cb Is CheckBox Then
                    ..........
                End If
            Next
    • Proposé comme réponse V HELLIN lundi 14 décembre 2009 17:37
    • Marqué comme réponse Gabriel Mongeon mercredi 16 décembre 2009 18:26
    lundi 14 décembre 2009 09:49
  • Oui Bonne idées, seulement vous allez avoir du mal a caster un autre control dans la variable cb qui est un combobox.
    Donc l'instruction for each risque de ne pas fonctionner, je vous suggere de passer par une variable de type control pour dérouler la collection controls.

    Dim

     

    cb As CheckBox

     

    Dim Ctrl As System.Windows.Forms.Control

     

    For Each Ctrl In Me.GbEventsS1.Controls

     

    If TypeOf Ctrl Is CheckBox Then

    cb = Ctrl

    cb.Checked =

    True

     

    End If

     

    Next


    Bon Codage Josselin
    lundi 14 décembre 2009 14:00
  • Qui a dit que la variable cb est un combobox ? Je pense que la réponse de nikho est correcte.
    lundi 14 décembre 2009 17:37
  • Pas de soucis c'etait dans le debut du thread

    "Dim cb As CheckBox"

    C'etait juste une précision ;-) 
    Bon Codage Josselin
    lundi 14 décembre 2009 21:06
  • Merci à tous pour ces réponses. C'est sympa de m'aider.
    Je teste cela ce soir et vous dis si ca fonctionne.

    Avant d'essayer je vais aller un peu plus loin dans mon exercice et demander si c'est possible de garder l'ordre de l'index des checkbox à mettre en checked = true.

    J'ai 10 checkbox et je voudrais que le checked se fasse dans l'ordre des index car une fois l'option checked = true, j'utilse de l'info pour créer de nouvelles colonnes dans un datagridview. Malheureusement les colonnes que j'ajoute , s'ajoute en fonction de la séquence de check des checkbox. Si checkbox 6 en premier, donc colonne 6 créée en premier. J'ai changé les index des checkbox mais cela ne change rien. On dirait qu'il se base sur la création même du checkbox dans le form.

    Donc est-il possible de faire un check en série en fonction de l'index des checkbox concernées.

    Un tout grand merci. Tchouny
    tchouny
    mardi 15 décembre 2009 10:17
  • Salut à tous,

    le code de Josselin fonctionne au poil. Merci

    J'ai vérifié et en effet les tickbox passent en checked en fonction de leur création dans le form et non en fonction de leur index. Enfin c'est le cas dans mon application.
    Je pourrai les effacer et les recréer dans le bon ordre mais c'est un peu facile.
    Je vais donc essayer de les faire passer en checkstate Checked en fonction de leur index.
    Si quelqu'un a une idée avant que je ne trouve une solution ......

    Merci encore à tous pour votre aide Tchouny


    tchouny
    mercredi 16 décembre 2009 09:03