RESPONDER UNA PREGUNTA

Si para responder la pregunta, crees necesario enviar un archivo adjunto, puedes hacerlo a traves del correo [email protected]

    Pregunta:  56778 - ARRAY DE CONTROLES DE CANTIDAD INDETERMINADA
Autor:  Jose Ignacio Calvo Torel
Quiero hacer un programa que permita crear gráficamente un salón de una cafetería.
Se dispondrán de varios diseños de mesas que se podrán añadir, mover, arrastrar, etc.
Las mesas serán picturebox creados en tiempo de ejecución, independientes entre sí y deberán manejar eventos.
Por ahora estoy probando para simplemente añadir varios picturebox en una posición determinada, guardándolos en un array y que al hacer click en uno me aparezca un msgbox con su nombre.
El problema es que al crear un nuevo picturebox y guardarlo en el array, me sobrrescribe los anteriores. Vamos que al final en el array tengo varias copias del último picturebox creado.
Las picturebox se añaden al hacer click en otra picturebox.
Concretando mi pregunta:
¿Cómo hago para que no me sobrrescriba en el array las picturebox anteriores?
El código es el siguiente:

Public Class pruebas
Public WithEvents mipicture As New PictureBox
Public pictures() As PictureBox
Public con As Integer = 0

Private Sub p0_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles p0.Click
Try
ReDim Preserve pictures(con)
pictures(con) = mipicture
pictures(con).Name = "Picture: " & con
pictures(con).Top = 10 * con
pictures(con).Left = 10 * con
pictures(con).BackColor = Color.Black
Me.Controls.Add(pictures(con))
con += 1
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub

Private Sub pruebas_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
asignarEventos()
End Sub

Private Sub asignarEventos()
AddHandler mipicture.Click, AddressOf mipicture_Click
End Sub

Private Sub mipicture_Click(ByVal sender As Object, ByVal e As EventArgs)
MsgBox(sender.Name)
End Sub

Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click
For i As Integer = 0 To pictures.Length - 1
MsgBox(pictures(i).Name)
Next
End Sub
End Class

Gracias de antemano


Nombre
Apellidos
Correo
Comentarios