Autor Tema: Sub para Limpiar controles en n contenedores  (Leído 6167 veces)

0 Usuarios y 1 Visitante están viendo este tema.

NolO

  • Kilobyte
  • **
  • Mensajes: 73
  • Reputación: +6/-0
    • Ver Perfil
Sub para Limpiar controles en n contenedores
« en: Agosto 10, 2012, 02:47:07 pm »
Hola compañeros, como estan?

Aqui compartiendo un pequeño fragmento de codigo, que en lo personal me es de mucha utilidad.

Lo que hace es recorrer los control en el contenedor y limpia los textbox en n contenedores.

Código: [Seleccionar]

Código: (VB) [Seleccionar]
    Sub Limpiar(ByRef Contenedor As Control.ControlCollection)

        Dim tmp As Control
        For Each tmp In Contenedor
            If tmp.GetType Is GetType(GroupBox) Then
                Limpiar(DirectCast(tmp, GroupBox).Controls)
            ElseIf tmp.GetType Is GetType(Panel) Then
                Limpiar(DirectCast(tmp, Panel).Controls)
            ElseIf tmp.GetType Is GetType(FlowLayoutPanel) Then
                Limpiar(DirectCast(tmp, FlowLayoutPanel).Controls)
            ElseIf tmp.GetType Is GetType(TableLayoutPanel) Then
                Limpiar(DirectCast(tmp, TableLayoutPanel).Controls)
            ElseIf tmp.GetType Is GetType(SplitContainer) Then
                Limpiar(DirectCast(tmp, SplitContainer).Controls)
            ElseIf tmp.GetType Is GetType(TabControl) Then
                Limpiar(DirectCast(tmp, TabControl).Controls)
            ElseIf tmp.GetType Is GetType(TabPage) Then
                Limpiar(DirectCast(tmp, TabPage).Controls)
            Else
                'TextBox, aunque puede ser cualquier otro control.
                If TypeOf tmp Is TextBox Then
                    DirectCast(tmp, TextBox).Clear()
                End If
            End If
        Next
    End Sub

Y para implementarlos se llama de la siguiente manera.

Código: (VB) [Seleccionar]
    Private Sub btnPrueba_Click(sender As System.Object, e As System.EventArgs) Handles btnPrueba.Click
        Limpiar(Me.Controls)
        ' o puede ser el contenedor que deseen, para este caso limpio todos los textbox contenido en un form
    End Sub

Espero que le sea de ayuda a alguien.

Salu2.