<System.Runtime.CompilerServices.Extension> _ Public Shared Function FindChildrenOfType(Of TChildType As Control)(currentControl As Control) As List(Of TChildType) Dim childList = New List(Of TChildType)() For Each childControl As Control In currentControl.Controls If TypeOf childControl Is TChildType Then childList.Add(DirectCast(childControl, TChildType)) End If childList.AddRange(childControl.FindChildrenOfType(Of TChildType)()) Next Return childList End FunctionThis has the added benefit of allowing you to filter by control type if required and also to begin drilling down from any control rather than just the form....