Me.Controls
returns the collection for the Form - i.e. the "outer" GroupBox.
To access the inner group box, you should iterate that collection, and then it's sub-collections:
For Each cOuter As Control In Me.Controls
If cOuter.HasChildren Then
For Each cInner As Control In cOuter.Controls
If cInner.HasChildren Then
For Each c As Control In cInner.Controls
ProcessYourControl(c)
Next
End If
ProcessYourControl(cInner)
Next
End If
ProcessYourControl(cOuter)
Next
The other solution is to write a recursive method that takes a Controls collection as a parameter, and processes all controls within it:
Private Sub FindControls(ByVal controls As ControlCollection)
For Each c As Control In controls
If c.HasChildren Then
FindControls(c.Controls)
End If
ProcessYourControl(c)
Next
End Sub
And then pass that
Me.Controls
when you call it.