Cocher par le code une checkbox dans un panel

Résolu
eulmaraud Messages postés 20 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 5 juin 2008 - 10 avril 2008 à 15:28
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 - 11 avril 2008 à 10:57
salut tout le monde

dans la continuité de ce message là : http://www.vbfrance.com/infomsg_RECONNAITRE-CONTROLE-DANS-PANEL-VB-EXPRESS_1106785.aspx

j'avais un 2e soucis, j'explique :

dans ce panel, j'ai 5 textbox + 1checkbox par ligne sur 10 lignes

le principe : quand je clique sur une checkbox, son tag prend "coché" et les 5 textbox sont accessibles en écriture
quand la personne a rempli les lignes ( soit 1, 2 ou ... 10), elle clique sur un bouton et une boucle se met en route

pour i de 0 à 9
si le tag de la case à cocher est "coché", le contenu des textbox est enregistré dans une table
fin pour

jusque là po de problème, tout roule

mais, j'ai un piti soucis concernant la restitution des données

j'arrive par une boucle à faire le chemin inverse, c'est à dire à restituer les enregistrements dans chaque case, et à placer le tag "coché" sur la textbox correspondant mais ----> je n'arrive pas à cocher la case par le code

alors j'ai retenté ça mais je n'arrive pas à finir

For Each c As System.Windows.Forms.Control In PanelRCvillaamodifier.Controls 'pour chaque controle du panel
            If c.GetType() Is GetType(System.Windows.Forms.CheckBox) Then  'si ce controle est une checkbox

                        si le tag de cette checkbox = "coché",

                                    alors patatipatata.checked = true
                        fin si

            End If
Next

voilà, si quelqu'un voit la chose......

merci d'avance

9 réponses

jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
11 avril 2008 à 09:58
Re,
Effectivement mon code ne fopnctionne QUE si il n'y a QUE des checkBox.... Vive .NET

Et bien essaie ceci alors.

Dim TmpCx As CheckBox

For Each Cx As Control In PanelRCvillaamodifier.Controls
   If Cx.GetType Is GetType(CheckBox) Then
       TmpCx = CType(Cx, CheckBox)       If TmpCx.Tag "COCHE" Then TmpCx.Checked True
   End If
Next
, ----
[code.aspx?ID=41455 By Renfield]

@+: Ju£i?n
Pensez: Réponse acceptée
3
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
10 avril 2008 à 15:32
Salut,Et ceci: If NomCheckBox.Tag "coche" then NomCheckBox.Value vbChecked

@+: Ju£i?n
Pensez: Réponse acceptée
0
eulmaraud Messages postés 20 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 5 juin 2008 1
10 avril 2008 à 20:47
    Merci de ta réponse jrivet

à vrai dire, bien entendu, j'y ai pensé

        If CheckBox39.Tag = "coché" Then

            CheckBox39.Checked = True

        End If

et ça roule

mais faut le faire 10 fois de suite pour les 10 checkbox du panel

aussi, j'aurai bien voulu (apprendre et) savoir comment faire ces 10 tests en 1 formule

sinon, y'a po de soucis, j'serai sauvé par les 10 test   ^^

merci
0
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
10 avril 2008 à 22:02
re,
Mais si tu mets ce test dans la boucle ca ne te fait qu'un seul test.

@+: Ju£i?n
Pensez: Réponse acceptée
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
eulmaraud Messages postés 20 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 5 juin 2008 1
11 avril 2008 à 09:27
       yep merci
mais quand tu dis, If NomCheckBox.Tag "coche" then NomCheckBox.Value vbChecked

j'suis d'accord mais le "Nomcheckbox" n'est pas connu.(enfin n'est pas récupérable à mon niveau)

je sais que la 1ere c'est checkbox40 par exemple, la 2e checkbox39, etc

l'idéal serait :

je teste chaque élément du panel
si c'est une checkbox -----> je récupère son nom
j'analyse son tag
si ce tag = coché ------> je fais cocher par le code cette checkbox à l'aide de son nom récupéré plus haut

merci
0
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
11 avril 2008 à 09:36
Salut,

Simplifie toi la vie.
Plutot que de faire pour chaque elements, fait pour chaque CheckBox, tu n'auras déjà pas à vérifier le Type.

Regarde ceci cela devrait résoudre ton problème

'POur chaque CheckBox Du Panel
For Each Cx As CheckBox In PanelRCvillaamodifier.Controls   If cx.Tag "COCHE" Then cx.Checked True
Next
, ----
[code.aspx?ID=41455 By Renfield]

@+: Ju£i?n
Pensez: Réponse acceptée
0
eulmaraud Messages postés 20 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 5 juin 2008 1
11 avril 2008 à 09:49
    Bien vu mais j'avais deja bidouillé un truc dans le genre mais j'ai cette erreur avec ton code :

"Impossible d'effectuer un cast d'un objet de type 'System.Windows.Forms.TextBox' en type 'System.Windows.Forms.CheckBox'."

et ouais, l'embetant c'est que le panel est "multi-windows-forms"......
0
eulmaraud Messages postés 20 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 5 juin 2008 1
11 avril 2008 à 10:45
    Merci bien mon ami, ça roule, (enfin ça devrait, j'dois encore régler la gestion de l'evenementiel)

bonne journée, bonne continuation et à la revoyure
0
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
11 avril 2008 à 10:57
Re,
pas de quoi. Bonne Prog

@+: Ju£i?n
Pensez: Réponse acceptée
0