Dans votre formulaire, ajoutez une étiquette et un bouton de commande. Je suppose que vous l'avez déjà fait.
Sélectionnez l'étiquette et, dans la fenêtre Propriétés, définissez lblPerson
à la propriété Name
et 0
à la propriété Index
.
Sélectionnez le bouton et, dans la fenêtre Propriétés, définissez cmdPerson
à la propriété Name
et 0
à la propriété Index
.
Maintenant vous avez deux tableaux de contrôle que vous pouvez définir dynamiquement lors de l'exécution:
Public Sub AddPersonListControls(idx As Long)
Load cmdPerson(idx)
cmdPerson(idx).Caption = "Details"
cmdPerson(idx).Visible = True
cmdPerson(idx).Top = cmdPerson(idx - 1).Top + cmdPerson(idx - 1).Height + 10
cmdPerson(idx).Left = cmdPerson(0).Left
Load lblPerson(idx)
lblPerson(idx).Caption = "Person Name " & idx
lblPerson(idx).Visible = True
lblPerson(idx).Top = lblPerson(idx - 1).Top + lblPerson(idx - 1).Height + 10
lblPerson(idx).Left = lblPerson(0).Left
End Sub
Où que vous charger les données de vos personnes, créez les contrôles correspondants:
Dim numPersons As Long
numPersons = 3 ' just an example
Dim i As Long
For i = 1 To numPersons - 1
AddPersonListControls i
Next
Votre formulaire doit regards (Remarque: Form1.ScaleMode
est défini sur 3-Pixels
):
Explication:
Alors que ma réponse ne répond pas directement à votre question avec le mot-clé New
, il vous montre la bonne méthode comment ajouter dynamiquement de nouveaux contrôles dans le cas où vous ne savez pas combien ils devrait être, donc en évitant l'utilisation de Named Controls
et en utilisant à la place Array Controls
.
Demandez-vous seulement de créer des contrôles à l'écran? Le terme "objet" est beaucoup plus large que cela. – DaveInCaz
Je veux un objet cliquable, que je pourrais montrer une page, pour chaque personne – Elias