Evenement sur objet a 2 dimensions en VB.NET

sniceper Messages postés 19 Date d'inscription dimanche 14 août 2005 Statut Membre Dernière intervention 20 septembre 2010 - 2 oct. 2009 à 12:46
elguevel Messages postés 718 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 22 novembre 2016 - 2 oct. 2009 à 14:34
Bonjour,
J'ai créé un tableau d'images a 2 dimensions puis le remplie dans une boucle, jusque là. pas de problème
Je voulais ensuite crée un évènement sur ce tableau d'image pour que quand une des images du tableau est cliquée, cela déclenchée une procédure qui a pour argument les index x et y de l'image concernée. j'ai donc créé un Handler. Le problème est que Visual studio me met une erreur me disant que les Handler ne gèrent pas les objets a 2 dimensions. Y a t-il une échappatoire?

Voici le code:

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim tab(8, 8) As System.Windows.Forms.PictureBox
        Dim x As Integer = 1
        Dim y As Integer = 1
        Dim z As Integer

        Do While x <= 8
            Do While y <= 8
                tab(x, y) = New System.Windows.Forms.PictureBox
                Me.Controls.Add(tab(x, y))
                tab(x, y).Location = New System.Drawing.Point(x * 100, y * 100)
                tab(x, y).Size = New System.Drawing.Size(100, 100)
                If (x Mod 2 0) And (y Mod 2 0) Or (x Mod 2 <> 0) And (y Mod 2 <> 0) Then
                    tab(x, y).BackColor = Color.Black
                Else
                    tab(x, y).BackColor = Color.White
                End If

                y += 1
                z += 1

            Loop
            y = 1
            x += 1
        Loop

        AddHandler tab.Click, AddressOf plop  '<--- c'est ici que l'erreur est envoyée ("le Handler ne peut être utilisé pour un objet à 2 dimensions
    End Sub

    Private Sub plop() '<--- ici je voudrais avoir en argument l'index de l'image cliquée
        MsgBox("le plateau a été cliqué")
    End Sub
End Class


Merci d'avance.

1 réponse

elguevel Messages postés 718 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 22 novembre 2016 3
2 oct. 2009 à 14:34
Le prototype de fonction pour un clique sur une picturebox doit etre "
Private Sub Plop(ByVal sender As System.Object, ByVal e As System.EventArgs)
"
0
Rejoignez-nous