You can use recursion to move through all the controls.
Private Sub Button1_Click(sender As Object, e As EventArgs)
Private Sub SetPropertyX(ByVal t As Type, ByVal control As Control)
Debug.WriteLine(control.Name)
For Each child As Control In control.Controls
If child.HasChildren Then
SetPropertyX(t, child)
End If
If child.GetType Is t Then
child.ForeColor = Color.Gold
End If
Next
End Sub
Call the SUB with a TYPE and the top container control:
Dim type As Type = CType((New Label).GetType, Type)
SetPropertyX(type, Me)
Hope this help, I have a small winform project that demonstrates this code, let me know if you would like it.
regs,
ron O.