mbardet
Messages postés3Date d'inscriptionjeudi 16 juin 2005StatutMembreDernière intervention 4 janvier 2006
-
4 janv. 2006 à 10:33
mbardet
Messages postés3Date d'inscriptionjeudi 16 juin 2005StatutMembreDernière intervention 4 janvier 2006
-
4 janv. 2006 à 20:09
Bonjour,
Je suis sur un projet de Morpion 10 x 10, ce qui fait 100 cases et donc 100 éléments. Le prof a imposé 1 élément par case. Est-ce que je peux désactivé les 100 bouttons en une seule manipulation.
J'ai essayé :
Dim i As Integer
Dim Num As String
Dim PB As PictureBox = New PictureBox
For i = 0 To 100
Num = "PictureBox" + Cstr(i)
PB.Name = Num
PB.Enabled = False
Next
Et ça ne marche pas.
Merci de votre aide
Maelle
A voir également:
Désactiver les bouttons ou PictureBoxes à la chaine
ScSami
Messages postés1488Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention 3 décembre 200724 4 janv. 2006 à 11:56
La solution de Crenaud est la meilleur.
Mais note tout de même que si tu as 100 trucs, et que ces bidules sont numérotés à partir de 0, ben faut pas faire :
For i = 0 To 100
mais
For i = 0 To 99
!!!
Car, en entier, de 0 à 99 fait bien 100 machins alors que de 0 à 100 en fait 101 !
C'est un peu pareil d'ailleurs avec les bytes (octects) et autres caractères ASCII...
0 à 255 = 256
C'est le fameux problème de 1 et de 0 que tu rencontreras souvent en informatique car parfois on utilise des nombres réelles (à virgules) et d'autres fois des nombres entiers!
Quoi qu'il en soit : For Each varObject In VraiObjet
Permet de parcourir toutes les "instances" de "VraiObjet" qu'importe leur nombre exacte (ce qui évite donc de connaître ce nombre exacte!!!).
En l'occurence, ici on parcours tous les contrôles (boutons, champ texte, ...) qui sont sur ta feuille ["Me" faisant référence à la feuille, qu'importe son vrai nom et ".Controls" faisant appel à la collection de contrôle de cette feuille... autrement dit, à un objet contenant la référence à tous tes contrôles... bref.]
La variable objet "Ctrl" fait référence à une instance précise (selon l'état d'avancement de For Each). Ici, à un contrôle quelconque de la feuille donc.
Du coup, il faut tester le nom de ce contrôle pour s'assurer qu'il s'agisse bien d'un PictureBox (puisqu'il peut y avoir d'autres types de contrôles sur ta feuille... et donc, dans la collection Me.Controls).
Du coup, si s'en est bien un (si le nom du contrôle commence bien par "picturebox"), ben on le désactive.
Vala, j'espère que ces quelques explications superflues sur le code de Crenaud auront servies à t'aider plus qu'a t'embrouiller...
Enjoy
<hr size="2" width="100%">
( Si une réponse vous convient, cliquez sur le bouton "Réponse acceptée". )