none
¿Como saber donde se dio click en una matriz de pictureBox?

    Pregunta

  • Hola 
    necesito hacer un juego de comer bolitas de colores, donde se unen mas de 2

    Estoy teniendo problemas para conocer en la matriz donde se dio click, la ubicación fila, columna

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            inicializa()
            TextBox1.Text = Imprimir()
        End Sub

        Private Sub inicializa()
            For i = 0 To mat.GetUpperBound(0)
                For j = 0 To mat.GetUpperBound(1)
                    Dim numeroImagenes As Integer
                    Dim aleatorio As Integer
                    'Obtenemos los ficheros de tipo ".jpg" de una carpeta. (puede haber más tipos de imagenes) 
                    Dim ficheros As String() = System.IO.Directory.GetFiles("C:\Users\Elias\Downloads\Patos", "*.jpg")
                    'Contamos el números de imagenes en la carpeta seleccionada. 
                    numeroImagenes = ficheros.Length
                    'Generamos un número aleatorio entre 0 y el número de imágenes en la carpeta. 
                    aleatorio = New Random().Next(0, numeroImagenes)
                    mat(i, j) = New PictureBox
                    Controls.Add(mat(i, j))
                    mat(i, j).Width = 30
                    mat(i, j).Height = 30
                    mat(i, j).Top = 30 * j
                    mat(i, j).Left = 30 * i
                    mat(i, j).SizeMode = PictureBoxSizeMode.StretchImage
                    mat(i, j).ImageLocation = ficheros(aleatorio)

                    mat2(i, j) = aleatorio
                    AddHandler mat(i, j).Click, AddressOf imagen_click
                Next
            Next

        End Sub

        Private Sub imagen_click(sender As Object, e As EventArgs)

            Dim p As PictureBox
            p = CType(sender, PictureBox)
            'Ahora "p" es una referencia al PictureBox en el que se hizo click


        End Sub

    Eso es lo que tengo, pero 'P' no me devuelve la ubicación que necesito

    Si me pueden ayudar Por favooor

    martes, 4 de abril de 2017 16:35

Respuestas

  • Puedes usar la propiedad Tag del PictureBox. Cuando añades cada picturebox a la matriz, en la propiedad Tag le puedes meter (i,j). Y luego cuando recibes el click, extraes el Tag desde p.

    "Tag" es de tipo "Object", por lo que puedes meter cualquier cosa, por ejemplo un Point que encapsule la i y la j. O puedes meter un int que valga i*numColumnas+j. O un string que tenga "("& i & "," & j & ")".

    martes, 4 de abril de 2017 19:03

Todas las respuestas

  • Puedes usar la propiedad Tag del PictureBox. Cuando añades cada picturebox a la matriz, en la propiedad Tag le puedes meter (i,j). Y luego cuando recibes el click, extraes el Tag desde p.

    "Tag" es de tipo "Object", por lo que puedes meter cualquier cosa, por ejemplo un Point que encapsule la i y la j. O puedes meter un int que valga i*numColumnas+j. O un string que tenga "("& i & "," & j & ")".

    martes, 4 de abril de 2017 19:03
  • Hola 
    Gracias por tu respuesta 
    Pero estoy comenzando a programar

    No entiendo como meterlo en mi codigo
    martes, 4 de abril de 2017 20:56
  • Ya pude hacerlo, me ayudaste mucho 
    Gracias
    martes, 4 de abril de 2017 21:47