CRÉATION DYNAMIQUE DE BOUTONS VB.NET 2003

Adn56 Messages postés 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 - 7 avril 2010 à 07:59
jcvid2 Messages postés 6 Date d'inscription mardi 18 juillet 2006 Statut Membre Dernière intervention 8 avril 2010 - 8 avril 2010 à 06:38
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/51563-creation-dynamique-de-boutons-vb-net-2003

jcvid2 Messages postés 6 Date d'inscription mardi 18 juillet 2006 Statut Membre Dernière intervention 8 avril 2010
8 avril 2010 à 06:38
Ba en fait la valeur associée au bouton peut être définie à souhait. Dans ma version initiale, j'ai même plusieurs valeurs : tarif classe... pour chaque bouton.
Mais ta solution est intéressante

En plus je vais améliorer les objets pour en laisser moins dans le principal
Adn56 Messages postés 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 1
7 avril 2010 à 07:59
salut, qu'elles sont les avantages de tes classes par rapport à un création de control dynamique de ce style :

Public Sub init_BP(ByVal nb_carte As Integer)
' création dynamique des controls picturebox pour les BP ' pour plusieurs cartes nb_carte = 2,3 ou 4 (ou 1 si qu'une seule bien sûr)
For x As Integer = 1 To nb_carte ' création des controls sur y

For y As Integer = 0 To 7 ' création des controls sur X
' Création du BP pictureBox
Dim BP As PictureBox = New PictureBox
With BP
.Name = "bp" & x & "-" & y ' nom des boutons : bp0-0 à bp3-7
.Size = New Size(47, 52) 'taille des boutons
.Location = New Point((x - 1) * 100, 10 + y * BP.Size.Height) 'place les boutons x puis y
.Image = bp_off
' si nb_carte = 1 alors x=0, si =2 alors x=100 etc...
' sur Y chaque bouton se place 10px en dessous du précédent car * par y, donc y=10, puis 52*y+10. 10 est un esapce entre chaque bouton
.Tag = (x - 1) & (y + 1) 'définie son tag pour le reconnaitre, je concaténe l'adresse de la carte avec son numéro de sortie à allumer (c'est un string)
' donc 01 à 08 pour la carte adr 0, puis de 11 à 18, 21 à 28 et enfin 31 à 38
.Cursor = System.Windows.Forms.Cursors.Hand 'modifie le curseur lors du survol
End With

AddHandler BP.Click, AddressOf PictureBox_Click 'génére ou récupére l'évenement du clic
Rejoignez-nous