Ajouter des tableaux de contrôle dynamique sans utiliser "load"

Contenu du snippet

Il existe deux méthodes pour créer des contrôles dynamiques.
Soit, on crée un objet indexé, et on le duplique à l'aidre de "load"
Soit on l'ajoute dans la collection de contrôles de la fenêtre.
Cependant, la seconde méthode ne permet pas un accès aux objets créés par un indice.

J'ai cherché dans le forum pour une solution, et j'ai vu que plusieurs utilisateurs avaient rencontré le même problème, sans qu'on leur donne une réponse autre que celle d'utiliser "load".

J'ai un peu cherché, et j'ai trouvé une solution simple, qui est d'utiliser des tableaux de références vers les objets créés dynamiquement.

Peut-être que ceci a déjà été expliqué, dans ce cas il suffira de supprimer cet exemple.

Source / Exemple :


Dim WithEvents LedDyn As VB.PictureBox  ' déclaration d'un objet dynamique
Dim Leds(127) As PictureBox  ' déclaration d'un tableau de références

Dim i%
  
  For i = 0 To 127                      ' pour chaque picturebox
    Set LedDyn = Me.Controls.Add("vb.picturebox", "Led" + CStr(i))    ' création du contrôle avec un nom unique
    Set Leds(i) = LedDyn             ' création d'une référence à l'objet
    LedDyn.Top = 500                 ' paramétrage du contrôle créé
    LedDyn.Left = 500 + (i * 100)
    LedDyn.Height = 300
    LedDyn.Width = 75
    LedDyn.BorderStyle = 0
    LedDyn.Visible = True
  Next i

  For i = 0 To 127       ' démonstration de l'accès par index
    Leds(i).BackColor = RGB(0, i * 2, 0)  ' accéder aux contrôles par index
  Next i

Conclusion :


Ce programme ne fait rien d'autre que de créer 128 pictures box, représentant des "leds" rectangulaires, et qu'on peut ensuite gérer via leur index

A voir également

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.

Du même auteur (cs_Bigonoff)