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.
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.
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.