Boucle sur des controls

Signaler
-
 Utilisateur anonyme -
Bonjour,



Je dois faire une boucle pour verifier l'etat de sept CheckBox, celles
ci sont contenues dans un panel lui meme contenu dans un TabControl.
Mon probleme est que je dois verifier leur etat dans une boucle for
comme suit :






for (short i=0;i<7;i++)
{
if (this.tabControl.Controls[0].Controls[i].Checked)
{

MessageBox.Show("Button "+ i +"
is check");
}
}





Le probleme est que la propriete Checked des Controls[i] n'est pas disponible comme l'indique le message d'erreur suivant : 'System.Windows.Forms.Control' does not contain a definition for 'Checked'



J'ai bien verifie que les controls auxquels je touchais sont des
CheckBox en affichant leurs noms. Ou se situe mon erreur ? Peut on
faire autrement ? Merci pour vos reponses.

5 réponses

Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
blog)
[Microsoft MVP Visual C#]

Super, je retiens ca. Merci beaucoup.

Est ce qu'il n'y aurait pas un autre moyen de faire comme par exemple en VB :



For i = 0 To 6

If Check_Day(i).CheckState = 1 Then

(...)

Else

(...)

End If



Dans le cas du VB on peut incorporer la variable au nom du control, est ce possible en C# ?
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
non... ce n'est pas possible. on ne peut pas créer un groupe de contrôle (du moins à la manière de vb6)

mais tu peux stocker tes contrôles dans une List<CheckBox> (voire ArrayList en .net 1.1)


Sébastien FERRAND (
blog)
[Microsoft MVP Visual C#]

J'ai un probleme alors...



Mon programme doit permettre a un utilisateur de regler un
enregistrement sur un ou plusieurs des 7 jours de la semaine en
definissant une heure de depart et une heure de fin. Si on veut
enregistrer un jour, il faut cocher le jour en question pour choisir
l'heure de debut, la minute de debut, si c'est AM/PM et pareil pour la
fin de l'enregistrement. Cela fait donc 7*6 parametres a recuperer (et
enregistrer) et si la case est decochee, il faut enregistrer des
parametres vides.



Mon idee de depart etait de faire comme on aurait pu faire en VB6, c'est a dire :



// pour les 7 jours de la semaine

for (jour=0; jour<7; jour++)

{

// si le jour est coche

if (chekbox[jour].checked)

{

//sauvegarde des 6 parametres

save(heureDebut[jour],comboboxHeureDebut[jour]);

save(heureFin[jour],comboboxHeureFin[jour]);

(...)

}

else

{

// sauvegarde de parametres vide

save (heuredebut[jour],"");

(...)

}