Cocher par le code une checkbox dans un panel [Résolu]

eulmaraud 20 Messages postés vendredi 13 mai 2005Date d'inscription 5 juin 2008 Dernière intervention - 10 avril 2008 à 15:28 - Dernière réponse : jrivet 7401 Messages postés mercredi 23 avril 2003Date d'inscription 6 avril 2012 Dernière intervention
- 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
Afficher la suite 

Votre réponse

9 réponses

Meilleure réponse
jrivet 7401 Messages postés mercredi 23 avril 2003Date d'inscription 6 avril 2012 Dernière intervention - 11 avril 2008 à 09:58
3
Merci
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

Merci jrivet 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 73 internautes ce mois-ci

Commenter la réponse de jrivet
jrivet 7401 Messages postés mercredi 23 avril 2003Date d'inscription 6 avril 2012 Dernière intervention - 10 avril 2008 à 15:32
0
Merci
Salut,Et ceci: If NomCheckBox.Tag "coche" then NomCheckBox.Value vbChecked

@+: Ju£i?n
Pensez: Réponse acceptée
Commenter la réponse de jrivet
eulmaraud 20 Messages postés vendredi 13 mai 2005Date d'inscription 5 juin 2008 Dernière intervention - 10 avril 2008 à 20:47
0
Merci
    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
Commenter la réponse de eulmaraud
jrivet 7401 Messages postés mercredi 23 avril 2003Date d'inscription 6 avril 2012 Dernière intervention - 10 avril 2008 à 22:02
0
Merci
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
Commenter la réponse de jrivet
eulmaraud 20 Messages postés vendredi 13 mai 2005Date d'inscription 5 juin 2008 Dernière intervention - 11 avril 2008 à 09:27
0
Merci
       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
Commenter la réponse de eulmaraud
jrivet 7401 Messages postés mercredi 23 avril 2003Date d'inscription 6 avril 2012 Dernière intervention - 11 avril 2008 à 09:36
0
Merci
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
Commenter la réponse de jrivet
eulmaraud 20 Messages postés vendredi 13 mai 2005Date d'inscription 5 juin 2008 Dernière intervention - 11 avril 2008 à 09:49
0
Merci
    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"......
Commenter la réponse de eulmaraud
eulmaraud 20 Messages postés vendredi 13 mai 2005Date d'inscription 5 juin 2008 Dernière intervention - 11 avril 2008 à 10:45
0
Merci
    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
Commenter la réponse de eulmaraud
jrivet 7401 Messages postés mercredi 23 avril 2003Date d'inscription 6 avril 2012 Dernière intervention - 11 avril 2008 à 10:57
0
Merci
Re,
pas de quoi. Bonne Prog

@+: Ju£i?n
Pensez: Réponse acceptée
Commenter la réponse de jrivet

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.