' Find all the controls with the specified Tag value' Example:' Dim ctrls() As Control = GetControlsByTag("OK", Me)' Dim ctrl As Control' For Each ctrl In ctrls' Debug.WriteLine(ctrl.Name)' NextFunction GetControlsByTag(ByVal tagToSearch As String, _ ByVal parentControl As Control) As Control() Dim controlList As New System.Collections.ArrayList ' add the parent control to the list, if its Tag matches the input string If Not parentControl.Tag Is Nothing Then If parentControl.Tag.ToString() = tagToSearch Then controlList.Add(parentControl) End If End If ' recursively call this routine for all the child controls If parentControl.Controls.Count > 0 Then Dim child As Control For Each child In parentControl.Controls ' add the results of the recursive GetControlsByTag call to the ' current ArrayList controlList.AddRange(GetControlsByTag(tagToSearch, child)) Next End If ' convert the ArrayList to an array of Controls, and return it Return controlList.ToArray(GetType(Control))End Function