Limpiar todos los controles de un formulario

Problema: Tengo que "poner en blanco" o limpiar todos los controles que tengo dentro de mi formulario, pero sin mencionarlos uno por uno puesto que son muchos. El principal problema es que los controles a limpiar, por ejemplo unos TextBox, están dentro de contenedores como GroupBox o TabControl.
Solución: Encontré este código buscando por la red, lamentablemente no puedo ponerle autoría porque no puedo accesar a la página.
Se copia el siguiente procedimiento.
    Sub sub_limpiar_campos(ByVal c1 As Control)
        'Limpia todos los controles dentro del control principal (c1)
        'aunque esten dentro de otros controles
        For Each c As Control In c1.Controls
            If TypeOf c Is TextBox Then
                c.Text = "" ' eliminar el texto 
            Else
                sub_limpiar_campos(c)
            End If
            If TypeOf c Is ComboBox Then
                c.Text = "" ' eliminar el texto 
            Else
                sub_limpiar_campos(c)
            End If
            If TypeOf c Is DateTimePicker Then
                c.Text = Date.Today ' Pone la fecha actual 
            Else
                sub_limpiar_campos(c)
            End If
            If (TypeOf (c) Is CheckBox) Then
                CType(c, CheckBox).Checked = False 'Quita el check
            Else
                sub_limpiar_campos(c)
            End If
            If (TypeOf (c) Is RadioButton) Then
                CType(c, RadioButton).Checked = False 'Quita el check
            Else
                sub_limpiar_campos(c)
            End If
        Next
    End Sub

Se lo utiliza de la siguiente manera.
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
    Handles Button1.Click, Button2.Click
        'Para limpiar todos los controles dentro del formulario
        'Aunque estén dentro de un TabControl o GroupBox
        sub_limpiar_campos(Me)
    End Sub