Recuperer les valeurs de plusieurs checkbox avec une boucle

Signaler
Messages postés
34
Date d'inscription
lundi 14 août 2006
Statut
Membre
Dernière intervention
4 janvier 2012
-
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
-
salut
pour certain c'est l'inverse d'un autre message (j'ai fait des essais mais rien de concluent)

je travail sous visual studio 2008
j'ai 256 chekbox je voudrais recréer une chaine binaire à partir de leur valeur (si il sont coché 1 ou pas coche0 )
voila ce que j'ai fait

une boucle avec 2 if
mais j'ai un probleme pour incrementer +1 au checkbox dont je veux ca valeur
ps je debut merci
a+

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
For i As Integer = 1 To 256 'elles sont nommées de CheckBox1 à CheckBox256

If CheckBox & i = False Then
temp3 = 0 & temp3
End If
If CheckBox & i = True Then
temp3 = 1 & temp3
End If
Next

2 réponses

Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
70
tu te fiches royal de ce qu'a pu te donner PCPT comme code ....

If CheckBox & i = False Then

Mais d'où ça vient, ça ?

CheckBox ecrit comme ca, c'est le nom d'une variable, même pas déclarée dans ton code...
tu concatène, très bien....

ca donne un String.

et tu demande si ce String = False

soit un Boolean

allô la terre, y'a uin lien avec tes controles, là ?


surtout que dans ta concaténation temp3
tu ajoutes le 0 et le 1 en début de chaine, pas très lisible, du coup...

If CheckBox & i = False Then 
...
End If 
If CheckBox & i = True Then 
...
End If


Pourquoi ne pas utiliser un Else plutot que de pondre la condition inverse ?

un conseil ? sort toi les doigts du paté, remontes tes manches et mets toi serieusement a relire le code de PCPT et a bosser.

ou change d'occupation



Renfield - Admin CodeS-SourceS - MVP Visual Basic
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
70
Allez, je suis sympa, je te pointe la ligne de code équivalente dans ce que t'avais codé PCPT :


DirectCast(Me.Controls("CheckBox" & i.ToString), System.Windows.Forms.CheckBox)



et que tu entends remplacer naïvement par

CheckBox & i 


tu vois, dans le code de PCPT on y trouve de la logique...

on récupère le controle dont le nom est "CheckBox" & i
dans le tableau de controles de la Form.
on effectue ensuite un Cast (transtypage) pour signifier que l'on utilise un CheckBox (System.Windows.Forms.CheckBox) et non un Control lambda.

tu vois, c'est long, certes, mais c'est reflechis, complet et correct.

comment veux tu que VB sache qu'en faisant

checkbox & i

tu souhaites manipuler un controle sur la feuille ?

Renfield - Admin CodeS-SourceS - MVP Visual Basic