pi7438
Messages postés94Date d'inscriptionvendredi 14 juin 2002StatutMembreDernière intervention16 avril 2004
-
8 juin 2003 à 14:56
Delbeke
Messages postés200Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention18 novembre 2005
-
9 juin 2003 à 19:47
salut, je cree un controle dynamiquement comme suit :
Dim lab(750) As label
i_boutton = i_boutton + 1
Set lab(i_boutton) = form1.Controls.Add("vb.label", nom)
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 8 juin 2003 à 17:02
En fait, pour créer des controles en live, tu as deux solutions :
- la tienne : mais je crois qu'il n'est pas possible de générer de code associé
- l'autre :
En mode création, tu crées un Label avec les caractéristiques qui te plaisent, tu le rends invisible (visible = False) et tu lui mets l'index 0 (propriétés)
Ensuite, quand tu veux ajouter un label, tu fais
Load MonLabel(index)
MonLabel(index).Visible = True
MonLabel(index).Top = x
MonLabel(index).Move x, y
Pas besoin de dimensionner
Bien sûr, tu peux le décharger avec Unload MonLabel(index)
Pour le code associé, il faut que tu le crées en mode création. Comme il s'agit d'un contrôle indexé, tu auras un paramètre supplémentaire dans l'évenement :
MonLabel_Click(Index As Integer)
Il faudra bien sûr en tenir compte dans le code :
MonLabel(index).Caption = "gnagnagna"
Cette dernière technique est valable pour tous les controles, si tu les indexes.
Delbeke
Messages postés200Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention18 novembre 2005 9 juin 2003 à 19:47
En fait, en interne, vb passe par une collection contenant les composants et c'est cette collection qui répercute les événements des composants vers l'interface en fournissant l'index du composant ayant généré l'événement.
Comme l'a indiqué Jack, il n'y a aucun problème pour VB . sauf avec Vb.Net qui ne possède pas cette fonctionalité. C'est en partie pour cela que je suis pas passé à Vb.Net car mon style de programmation utilise les groupe de composants de façon intensive.