Faire référence à un button crée dynamiquement

GuyRev Messages postés 27 Date d'inscription vendredi 4 août 2006 Statut Membre Dernière intervention 24 février 2013 - 6 févr. 2011 à 10:14
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 - 7 févr. 2011 à 14:31
VB 2010
Bonjour à tous,
Ma question va peut-être vous sembler simpliste, mais la voici:
Quand on a crée plusieurs 'button' dynamiquement, comment fait t'on pour faire référence à l'un d'entre eux une fois crée, ou plus exatement quel est le code approprié pour attribuer le nom de ce control à une variable?
le but est de changer la position de ce 'button' ou son apparence.
Merci de votre aide.

GuyRev

3 réponses

Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
6 févr. 2011 à 11:50
Ben quand tu crées un bouton dynamiquement, tu crées déjà une variable représentant ce bouton, tu peux alors accéder au bouton via la variable, non ?

Cordialement, Bacterius !
0
GuyRev Messages postés 27 Date d'inscription vendredi 4 août 2006 Statut Membre Dernière intervention 24 février 2013
6 févr. 2011 à 12:05
Bonjour et merci de votre réponse.

Voici mon code de création des 'button'
Une fois les 32 boutons crées je souhaite dans une autre procédure modifier le bouton dont le nom est 'Carte20'
Comment puis-je faire référence à ce boutton?

Cordialement

For x = 1 To 4
For y = 1 To 8
Dim nvxbtn As New Button()
nvxbtn.Name = "Carte" + (nbrbtn + 1).ToString() 'defini le nom du boutton
nvxbtn.Width = Largeur
nvxbtn.Height = Hauteur
Select Case x

Case Is = 1
'nvxbtn.Top = 250 - 5 * y
' nvxbtn.Left = 50 - 5 * y
nvxbtn.Top = (x * (Vinterval)) + MHaut - Vinterval
nvxbtn.Left = nbrbtn * (nvxbtn.Width + Hinterval) + MGauche
nvxbtn.BackgroundImage = (imageList1.Images(0))
nvxbtn.TabStop = False
nvxbtn.Cursor = Cursors.Hand
Controls.Add(nvxbtn)
AddHandler nvxbtn.Click, AddressOf nvbtnHandler_Click ' ajoute l'evenement myButtonHandler_Click au controle
System.Threading.Thread.Sleep(10)
Me.Refresh()
Case Is = 2
'nvxbtn.Top = 250 - 5 * y
'nvxbtn.Left = 50 - 5 * y
nvxbtn.Top = (x * Vinterval) + MHaut - Vinterval + Hauteur
nvxbtn.Left = (nbrbtn - 8) * (nvxbtn.Width + Hinterval) + MGauche
nvxbtn.BackgroundImage = (imageList1.Images(0))
nvxbtn.TabStop = False
nvxbtn.Cursor = Cursors.Hand
Controls.Add(nvxbtn)
AddHandler nvxbtn.Click, AddressOf nvbtnHandler_Click
System.Threading.Thread.Sleep(10)
Me.Refresh()
Case Is = 3
'nvxbtn.Top = 250 - 5 * y
'nvxbtn.Left = 50 - 5 * y
nvxbtn.Top = (x * Vinterval) + MHaut - Vinterval + (Hauteur * 2)
nvxbtn.Left = (nbrbtn - 16) * (nvxbtn.Width + Hinterval) + MGauche
nvxbtn.BackgroundImage = (imageList1.Images(0))
nvxbtn.TabStop = False
nvxbtn.Cursor = Cursors.Hand
Controls.Add(nvxbtn)
AddHandler nvxbtn.Click, AddressOf nvbtnHandler_Click
System.Threading.Thread.Sleep(10)
Me.Refresh()
Case Is = 4
'nvxbtn.Top = 250 - 5 * y
'nvxbtn.Left = 50 - 5 * y
nvxbtn.Top = (x * Vinterval) + MHaut - Vinterval + (Hauteur * 3)
nvxbtn.Left = (nbrbtn - 24) * (nvxbtn.Width + Hinterval) + MGauche
nvxbtn.BackgroundImage = (imageList1.Images(0))
nvxbtn.TabStop = False
nvxbtn.Cursor = Cursors.Hand
Controls.Add(nvxbtn)
AddHandler nvxbtn.Click, AddressOf nvbtnHandler_Click
System.Threading.Thread.Sleep(10)
Me.Refresh()

End Select
nbrbtn += 1 'on incremente le compteur de 1
Next
Next
GuyRev
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
7 févr. 2011 à 14:31
Salut

dans le code de l'évenement où tu veux modifier
un bouton

Dim lebouton As Button = DirectCast(sender, Button)
if lebouton.name = "blala" then
0
Rejoignez-nous