En VB6, dans un timer, je pouvais modifier les propriété d'un contrôle appartenant à un groupe de contrôle grace à la propriété index(Exemple:Modification du caption du bouton1)
Je ne parviens pas à refaire la même chose en VB 2005.
Bref, si vous pouviez m'aider!!!
Exemple pour un shape en VB6.Faire la même chose en VB 2005 Express
Private Sub Timer1_Timer()
mot_sortie = HScroll1.Value
For i = 15 To 0 Step -1
If (mot_sortie / (2 ^ i) >= 1) Then
Shape1(i).FillColor = &HFF&
mot_sortie = mot_sortie - (2 ^ (i))
Else
Shape1(i).FillColor = &HFFFFFF
End If
Next i
'Text2.Text = CStr(mot_sortie)
End Sub
OK, dans mon application, ça marche avec le code ci-dessous(obligé de mettre Dim Coll As New ArrayList). Bref on est obligé de remplir un par un le tableau avec les contrôle!
c'est beaucoup moin élégant et facile qu'en VB6!
Merçi beaucoup!!
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Dim n As Int16
Dim octet As Integer
Dim Coll As New ArrayList
CType(Coll(n), CheckBox).Checked = True
For n = 0 To 7
If (octet / (2 ^ n) >= 1) Then
CType(Coll(n), CheckBox).Checked = True
Else
CType(Coll(n), CheckBox).Checked = False
End If
octet = octet - (2 ^ n)
Next n
End Sub
Le VB6 c'est très très loin pour moi , mais je pense que cette notion de groupe n'existe plus dans VB2005.
Il faut les mettre dans une collection (de boutons) et itérer comme tu le fais déjà maintenant à travers tes boutons.
Dcl de la collection : Dim Coll as ArrayList
Ajout d'un controle à la collection : Coll.Add(Textbox1)
Accès au controle N°i dans la collection : CType(Coll(i),Textbox).Text = "Ctrl " & i
Kristof_Koder
Vous n’avez pas trouvé la réponse que vous recherchez ?
Du même genre mais bien meilleur,c ar cela évitera le CType() je pense non ?
(suis débutant en VB.NET 2005 : 4 heures de prog à mon actif dans ce langage pour le moment ! Contre 15 en VB 4/5/6 !!!!)
M'est avis que ta collection ne devrait pas être local à ta Sub Timer1_Tick(), car sinon, cela veut dire qu'à chaque tour de timer, tu instancies un nouvel arraylist, et tu y ajoutes tes checkboxes pour ensuite détruire ton instance d'arraylist!! Pas très optimal ca non ?
Tu devrais déclarer ton ArrayList au niveau d'un module, et faire une Sub InitArrayList() qui va enregistrer tes checkboxes dedans.
Tu devra faire appel à cette sub d'initialisation une et une seule fois, dans le form_load par exemple.
Ensuite, dans ta sub Timer1_Tick(), tu ne conserves que ta boucle For