GESTIONNAIRES D'ÉVÉNEMENTS

hvb Messages postés 939 Date d'inscription vendredi 25 octobre 2002 Statut Membre Dernière intervention 27 janvier 2009 - 22 oct. 2003 à 10:36
gregorycaloin Messages postés 8 Date d'inscription mercredi 31 décembre 2008 Statut Membre Dernière intervention 2 mai 2012 - 15 nov. 2010 à 13:50
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/17275-gestionnaires-d-evenements

gregorycaloin Messages postés 8 Date d'inscription mercredi 31 décembre 2008 Statut Membre Dernière intervention 2 mai 2012
15 nov. 2010 à 13:50
Je viens de découvrir un truc très intéressant et puisque ça n'était pas clairement mentionné.. Bref voili voilou, j'ai un peu cherché et fini par trouver.
Euhh pour info, je suis sous VISUAL STUDIO 2010

Dans un GROUPBOX "dur", je crée un objet PANEL dynamiquement.
Ensuite je crée un certain nombre de PICTUREBOX dans ce même panel.

Pour gérer l'évènement de clic sur l'un des nombreux PICTUREBOX pour savoir lequel j'ai cliqué, j'ai fais comme ça :

Private Function CreationBlocs(ByVal nombre As Int32, ByVal L As Int32, _
ByVal H As Int32, ByVal inter As Int32, _
ByVal monpanel As Panel)
' Création des pictureboxes de visualisation video
Dim start As Int32 = 1

monpanel.SuspendLayout()
Application.DoEvents()

For HT As Int32 = 0 To nbElmts_Hauteur -1
For PosL As Int32 = start To start + nbElmts_Hauteur
Dim Box As New PictureBox
Box.Name = "box_" & nombre
Box.Size = New Size(L, H)
Box.BorderStyle = BorderStyle.FixedSingle
Box.SizeMode = modeZoom

Box.Location = New Point(3 + ((PosL - start) * (L + inter)), 3 + (HT * (H + inter)))
monpanel.Controls.Add(Box)
AddHandler Box.Click, AddressOf MonCadre_Click

Next
start += nbElmts_Hauteur + 1
Next
monpanel.ResumeLayout()
End Function

Sub MonCadre_Click(ByVal sender As Object, ByVal e As EventArgs)
Dim cadre As PictureBox
cadre = CType(sender, PictureBox)

Dim numCadre As Control = CType(sender, PictureBox)
MsgBox(numCadre.TabIndex) ' Renvoie l'index de l'objet "enfant" quand on clique dessus

' Maintenant je peux manipuler le contenu de mon PICTUREBOX, vers une autre fonction......
End Sub
PatBlarg Messages postés 67 Date d'inscription jeudi 26 juin 2008 Statut Membre Dernière intervention 11 mai 2010
4 déc. 2008 à 14:45
Merci pour le code! C'est un bon point de départ pour ce que je voulais faire!
cs_ntic_safi Messages postés 28 Date d'inscription dimanche 29 avril 2007 Statut Membre Dernière intervention 27 août 2008
14 nov. 2007 à 22:58
merci beaucoup Mr j'espere que tu va bien
TigerFab Messages postés 115 Date d'inscription samedi 15 février 2003 Statut Membre Dernière intervention 18 mai 2008
2 févr. 2004 à 11:24
Mouais .. je pensais à ca aussi, mais s'il y a 100 boutons à créer, faut choisir 100 noms différents pour la propriété Name.

J'ai vu aussi la propriété AccessibleName pour faire la même chose.

Bon ben, si il n'y a que cette manière (tester les boutons dans une boucle sans pouvoir l'appeler directement en une ligne, genre item ...) je ferai comme ca.

Merci.

A+
cs_yous Messages postés 136 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 13 avril 2009 1
2 févr. 2004 à 07:17
A l'aide d'une boucle For Each qui passe en revue tous les contrôles et effectue un test sur le nom, exemple:

Dim Controle As Control
For Each Controle In Me.Controls
If Controle.Name = "bouton4" Then
'Traitement
Exit For
End If
Next Controle

bouton4 étant bien entendu l'un des boutons créé dynamiquement.
TigerFab Messages postés 115 Date d'inscription samedi 15 février 2003 Statut Membre Dernière intervention 18 mai 2008
1 févr. 2004 à 19:16
Salut Yous,

J'ai une petite question par rapport aux boutons dynamiques:

tu crèes 10 boutons dynamiques par me.controls.add(but) où but est déclaré Button

comment dans une autre fonction tu accèdes à un de ces boutons créés ?

Avant en VB6, on faisait juste but(4).left pour accéder au 5èmebouton mais ici ? comment changer n'importe où une propriété sur un bouton créé dynamiquement ?
cs_yous Messages postés 136 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 13 avril 2009 1
22 oct. 2003 à 10:47
Exact, le principe énoncé est le même.
Tant pis, je pense que c'est une technique importante...
hvb Messages postés 939 Date d'inscription vendredi 25 octobre 2002 Statut Membre Dernière intervention 27 janvier 2009 3
22 oct. 2003 à 10:36
deja posté ( http://www.vbfrance.com/code.aspx?ID=5616 ), peut etre moins developpé, je ne sais pas, j'ai pas regarder ton zip, mais ç'est assez clair .
Rejoignez-nous