none
Remover Controles en tiempo de ejecucion. RRS feed

  • Pregunta

  • Gracias a Williams morales por ayudarme a crear una lista con index de controles en tiempo de ejecucion

    Ahora necesito poder borrar cada uno de ellos para poder repetir el proceso nuevamente sin cerrar el programa

    Codigo donde se crean:

    For Index = 0 To UBound(Palabras)
        For CharIndex = 0 To Len(Palabras(Index)) - 1
            
            NewIndex = Controls("Cuadri" & (Index + 1)).Count
                
            Load Controls("Cuadri" & (Index + 1))(NewIndex)
                    
            If (TopOLeft <= 100) Then
                            
                With Controls("Cuadri" & (Index + 1))(NewIndex)
                    .Left = Controls("Cuadri" & (Index + 1))(NewIndex - 1).Left + 464
                    .Picture = Imagenes.ListImages(11).Picture
                    .Visible = True
                End With
            Else
                With Controls("Cuadri" & (Index + 1))(NewIndex)
                    .Top = Controls("Cuadri" & (Index + 1))(NewIndex - 1).Top + 464
                    .Picture = Imagenes.ListImages(11).Picture
                    .Visible = True
                End With
            End If
        Next
    Next

    Quisiera saber como se hace para poder borrarlos con un CommandButton
    La cuestion es que puede haber escritas las 10 palabras como 5, 4, o cualquier numero..

    Y no se si necesitan numeros especificos para borrar controles ya que no se puede borrar algo que no existe.

    martes, 23 de mayo de 2017 15:26

Todas las respuestas

  • Tenes que usar unload y el index del control.
    martes, 23 de mayo de 2017 23:02
  • Recorre la longitud del array Palabras (recorrido vertical) y por cada elemento recorre los elementos de la colección de controles (recorrido horizontal) (considera que no puedes descargar los controles creados en tiempo de diseño). Depura los errores de sintaxis en los que haya descuidado, no tengo como corroborar la propuesta.

    Private Sub btnEliminar_Click()
    
        Dim Palabras(3) As String
        Dim Index As Integer
        Dim ControlIndex As Integer
        
        Palabras(0) = "Visual"
        Palabras(1) = "Basic"
        Palabras(2) = "6.0"
        
        For Index = 0 To UBound(Palabras) - 1
            For ControlIndex = Controls("Cuadri" & Index + 1).LBound + 1 _
                To Controls("Cuadri" & Index + 1).UBound
                
                Unload Controls("Cuadri" & Index + 1)(ControlIndex)
            Next
        Next
    
    End Sub
    


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    miércoles, 24 de mayo de 2017 22:05