Buenas!
Tengo que eliminar una serie de controles en un contenedor. Pero la eliminación de estos es un poco más complicado que ocultarlos.
Por otro lado cuando se elimina un control, ¿ se elimina o queda invalido ?.
He creado este ejemplo. En un panel añado picturebox desde los botones de abajo, su imagen varia dependiendo si quiero que muestre
un círculo o un cuadrado.
Puedo ocultar cada uno de los controles, ¿ pero seria posible eliminarlos ?. Acordaros que los controles en su contenedor tienen un indice.
Si es un array, haceros a la idea de lo que quiere decir eso, cuando eliminas un elemento y lo que ocurre con sus indices.
Actualmente solo oculto los controles creados.
Para eliminar se debe hacer click sobre la figura.
Código:
'Actualmente no los elimina, los oculta
Private afigures As New PictureBox[] 'Almacenará todos los picturebox
Private indice As Integer
Public Sub Form_Open()
Me.Title = "Eliminar control de su contenedor"
Panel1.Arrangement = Arrange.Row
End
Public Sub CrearFigura(tipo As Integer)
Dim pfigura As PictureBox
pfigura = New PictureBox(Panel1) As "Figura"
Select Case tipo
Case 1
pfigura.Picture = Picture.Load(Application.Path &/ "circulo.png")
Case 2
pfigura.Picture = Picture.Load(Application.Path &/ "cuadrado.png")
End Select
With pfigura
.Tooltip = "Haz click para eliminarlo del panel"
.w = 64
.H = 64
.Tag = indice
End With
indice += 1
afigures.Add(pfigura)
End
Public Sub BotonesCreadores_Click()
'Crea un circulo "1" o un cuadrado "2"
CrearFigura(Last.tag)
End
Public Sub Figura_MouseDown()
'Se oculta el último picturebox en el que se ha hecho click dentro de el
Last.Hide
End
Subo el ejemplo.
Saludos