Yo lo hacia de forma similar pero para ello hay que llamar todos los controles en cada contenedor... usaba un codigo como este solo que en lugar de enable seria .tex=nothing
Código vb:
Ver originalDim c As Control
Dim g As Control
Dim p As Control
For Each p In TabPage1.Controls
If TypeOf p Is Panel Then
For Each g In p.Controls
If TypeOf g Is GroupBox Then
For Each c In g.Controls
If TypeOf c Is TextBox Then
c.Enabled = True
ElseIf TypeOf c Is ComboBox Then
c.Enabled = True
ElseIf TypeOf c Is CheckBox Then
c.Enabled = True
End If
Next
End If
Next
End If
Next
pero tambien pudieras hacer un arreglo de todos tus textbox y despues un metodo para recorrer el arreglo ahora uso este metodo ya que valido todos mis controles
Código vb:
Ver originalPublic Sub limpiar1()
'LIMPIA LOS CONTROLES DE LA PRIMERA PESTAÑA
Dim arr_con_tp1() As Control = {txt_nom_completo, txt_1_nom, txt_2_nom, txt_1_ap, txt_2_ap, txt_rfc, _
txt_calle, txt_num_int, txt_num_ext, txt_limite, txt_num_locker, _
txt_fecha_alta, dtp_fecha_aniversario, dtp_fecha_cumpleaños, txt_fecha_ult_acc, txt_fecha_ult_comentario, txt_fecha_ult_consumo, txt_fecha_ult_pago, _
txt_valordecuota, txt_dep_garantia, txt_num_locker, _
cmb_titulo, cmb_edocivil, cmb_ptocardinal, cmb_pais, cmb_estado, cmb_ciudad, cmb_colonia, _
rad_fisico, chk_inha_cred, chk_tarj_credito, chk_cargo_aut, chk_factura, chk_carga_intereses, chk_consumo_minimo_salas, _
chk_notif_cxc, chk_notif_nf, chk_notif_np, _
pic_foto, pic_firma, txt_edad, txt_tipo_tarjeta, txt_num_tarj, dtp_fecha_aniversario, dtp_fecha_cumpleaños}
limpiacontroles(arr_con_tp1)
End Sub
Código vb:
Ver originalPublic Sub limpiacontroles(ByVal arr_con_tp1_1() As Control)
'REGRESAR EL CONTROL A UN FORMATO INICIAL SIN TEXTO NI ELEMENTOS
For j As Integer = 0 To arr_con_tp1_1.Length - 1
If (TypeOf arr_con_tp1_1(j) Is TextBox) Then 'SI ES TEXTBOX
CType(arr_con_tp1_1(j), TextBox).Text = Nothing
ElseIf (TypeOf arr_con_tp1_1(j) Is CheckBox) Then 'SI ES CHECKBOX
CType(arr_con_tp1_1(j), CheckBox).Checked = False
ElseIf (TypeOf arr_con_tp1_1(j) Is RadioButton) Then 'SI ES RADIOBUTOON
CType(arr_con_tp1_1(j), RadioButton).Checked = False
ElseIf (TypeOf arr_con_tp1_1(j) Is DateTimePicker) Then 'SI ES DATETIMEPICKER
If CType(arr_con_tp1_1(j), DateTimePicker).Name <> "dtp_fecha_aniversario" Then
CType(arr_con_tp1_1(j), DateTimePicker).Value = CType(arr_con_tp1_1(j), DateTimePicker).MaxDate
CType(arr_con_tp1_1(j), DateTimePicker).Format = DateTimePickerFormat.Custom
CType(arr_con_tp1_1(j), DateTimePicker).CustomFormat = "dd/MMM/yyyy"
ElseIf CType(arr_con_tp1_1(j), DateTimePicker).Name = "dtp_fecha_cumpleaños" Then
CType(arr_con_tp1_1(j), DateTimePicker).Value = Date.Now.Day & "/" & Date.Now.Month & "/" & (Date.Now.Year - 18)
CType(arr_con_tp1_1(j), DateTimePicker).Format = DateTimePickerFormat.Custom
CType(arr_con_tp1_1(j), DateTimePicker).CustomFormat = "dd/MMM/yyyy"
End If
ElseIf (TypeOf arr_con_tp1_1(j) Is PictureBox) Then 'SI ES PICTUREBOX
If CType(arr_con_tp1_1(j), PictureBox).Name = "pic_foto" Or CType(arr_con_tp1_1(j), PictureBox).Name = "pic_adi_foto" Then
CType(arr_con_tp1_1(j), PictureBox).ImageLocation = rutaimagenes & rutafotos & "\foto.png"
ElseIf CType(arr_con_tp1_1(j), PictureBox).Name = "pic_firma" Then
CType(arr_con_tp1_1(j), PictureBox).ImageLocation = rutaimagenes & rutafirmas & "\firma.png"
ElseIf CType(arr_con_tp1_1(j), PictureBox).Name = "pic_adi_foto" Then
CType(arr_con_tp1_1(j), PictureBox).ImageLocation = rutaimagenes & rutafotosadi & "\foto.png"
End If
ElseIf (TypeOf arr_con_tp1_1(j) Is ComboBox) Then 'SI ES COMBOBOX
CType(arr_con_tp1_1(j), ComboBox).Items.Clear()
CType(arr_con_tp1_1(j), ComboBox).Text = Nothing
CType(arr_con_tp1_1(j), ComboBox).Refresh()
End If
Next
End Sub
y cuando quiera limpiar solo llamo la funcion
y listo