Control event

Résolu
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 - 29 oct. 2010 à 00:33
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 - 29 oct. 2010 à 11:50
Salut à tous

J'ai un vecteur de picturebox mypic et aussi
son évenement mouseup
Private mypic() As System.Windows.Forms.PictureBox
for iter = 0 to N
   mypic(iter) = New PictureBox
   me.Controls.Add(mypic(iter))
   AddHandler mypic(iter).MouseUp, 
   AddressOf mypic_MouseUp
Next 

Private Sub mypic_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)


Comment savoir quel mypic (son index)
j'ai cliqué

merci

3 réponses

Utilisateur anonyme
29 oct. 2010 à 01:27
Salut,
Par facilité j'utiliserais le tag du contrôle picturebox

mypic(iter).Tag = iter


Et pour retrouver ce tag dans le MouseUp :

Dim pct As PictureBox = DirectCast(sender, PictureBox)
MessageBox.Show(pct.Tag)



Bonne prog.
3
Sehnsucht Messages postés 107 Date d'inscription samedi 25 novembre 2000 Statut Membre Dernière intervention 4 mai 2013
29 oct. 2010 à 03:19
Bonjour,

Lors de l'évènement, le paramètre sender contient une référence sur l'objet(le contrôle) qui a déclenché l'évènement, il te suffit donc de le caster(convertir) dans son type réel pour pouvoir t'en servir (comme montré dans le post précédent).
À la limite si ton tableau n'avait pour but que de pouvoir récupérer le bon PictureBox il est inutile ; par contre s'il sert pour d'autres choses et qu'il te faut absolument la position(indice) dans ton tableau tu peux utiliser la méthode Array.IndexOf pour l'obtenir.

Private Sub mypic_MouseUp(ByVal sender As Object, ByVal e As MouseEventArgs)
    'Pour juste utiliser directement le bon PictureBox
    Dim source As PictureBox = DirectCast(sender, PictureBox)

    'Pour obtenir l'indice dans le tableau
    Dim indice As Integer = Array.IndexOf(mypic, sender) ' ici on peut mettre aussi bien sender que source

    'À partir d'ici indice contient la position (en base 0) dans le tableau
    ' ou il vaut -1 si l'élément n'a pas été trouvé
End Sub


Cordialement !
3
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
29 oct. 2010 à 11:50
Bonjour
Merci à vous deux
0
Rejoignez-nous