Limpiar un formulario en Visual Basic .NET

Hola a todos, hoy os voy a enseñar como limpiar un formulario de forma completa en Visual Basic .NET.

Cuando tenemos un formulario con datos, es normal que necesitemos limpiar los datos en alguna ocasión pero hay veces que tenemos muchos elementos y se hace pesado tener que ir elemento a elemento, reiniciando o borrando texto.

Por eso, os traigo una función que nos va a permitir hacerlo de forma sencilla:

    Sub limpiarFormulario(controles As Control.ControlCollection)

        For Each control As Control In controles

            If TypeOf control Is TextBox Then
                DirectCast(control, TextBox).Clear()
            ElseIf TypeOf control Is PictureBox Then
                DirectCast(control, PictureBox).Image = Nothing
            ElseIf TypeOf control Is ComboBox Then
                DirectCast(control, ComboBox).SelectedIndex = 0
            ElseIf TypeOf control Is NumericUpDown Then
                DirectCast(control, NumericUpDown).Value = 0
            ElseIf TypeOf control Is CheckBox Then
                DirectCast(control, CheckBox).Checked = False
            ElseIf TypeOf control Is GroupBox Or TypeOf control Is Panel Then
                limpiarFormulario(control.Controls)
            ElseIf TypeOf control Is DataGridView Then
                DirectCast(control, DataGridView).Rows.Clear()
                DirectCast(control, DataGridView).DataSource = Nothing
            End If

        Next

    End Sub

La forma de llamarlo es simple:


limpiarFormulario(Me.Controls)

Siendo Me el Form. Si te fijas en la función, se llama así misma, básicamente es recursiva si el elemento contienen otros elementos.

He puesto los más comunes, si necesitas añadir algún elemento personalizado, solo debes añadir otro elseif. Si quieres que añadamos alguno en concreto, coméntanos.

Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.

Compartir

4 comentarios

  1. Angel

    Una genialidad… la verdad, no conocía este método!!! Gracias

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *