Recuperare un controllo in base al nome in maniera ricorsiva in Windows Forms

Scritto da  Massimo Bonanni il mercoledì 23 novembre 2011  •  Linguaggio: VB   • Livello: 100


A volte si può avere la necessità di recuperare un controllo presente nella nostra GUI in base al nome.
La seguente funzione generic permette di eseguire questa operazione iterando, in meniera recursiva, tra i controlli di un generico container (di tipo Control):

VB.NET

Public Function GetControlRecursive(Of T As Control)(controlName As String, container As Control) As T
    If TypeOf container Is T AndAlso container.Name = controlName Then
        Return CType(container, T)
    End If
    For Each ctrl In container.Controls.OfType(Of Control)()
        Dim retCtrl = GetControlRecursive(Of T)(controlName, ctrl)
        If retCtrl IsNot Nothing Then
            Return retCtrl
        End If
    Next
    Return Nothing
End Function

 

 


Tags: Windows Forms

 
x