Sandro Bizioli


Chi sogna di giorno conosce molte cose che sfuggono a chi sogna soltanto di notte. (E.A.Poe)
Mappa

RootIn: verificare se un controllo "appartiene" ad un contenitore

Dopo la funzione ParentRoot eccone un'altra analoga che ci permette di verificare se un controllo è "figlio" di un determinato contenitore.
Anche in questo caso sarà possibile mettere dei "paletti" alla ricerca impostando la proprietà ParentStop al controllo limite entro il quale effettuare la ricerca.

    ''' <summary>
    ''' Restituisce il primo controllo nella gerarchia di appartenenza
    ''' </summary>
    ''' <param name="ctr">Controllo di riferimento</param>
    ''' <param name="theParent">Controllo su cui effettuare la verifica</param>
    ''' <param name="ParentStop">Opzionale. Controllo "limite" entro il quale effettuare la ricerca</param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Private Function ParentIn(ByVal ctr As Control, ByVal theParent As Control, Optional ByVal ParentStop As Control = Nothing) As Boolean
        '**********************************************************************
        ' Func: ParentRoot (Creazione: SB 20080827  Mod: )
        ' Desc: Verifica se un controllo appartiene ad un determinato contenitore
        ' Par : ctr         Controllo da cui partire
        '       theParent   Controllo di verifica
        '       [ParentStop]Opzionale. Controllo "limite" entro il quale effettuare la ricerca
        ' Ret : Boolean     True se ctr è contenuto in theParent
        '                         False se ctr NON è contenuto in theParent
        ' Note:
        '**********************************************************************
        Do While Not ctr Is Nothing
            If ctr.Parent Is ParentStop OrElse TypeOf (ctr.Parent) Is Form Then Return False
            If ctr.Parent Is theParent Then Return True
            ctr = ctr.Parent
        Loop
        Return False
    End Function
   
    Ed ecco qui la consueta funzione ricorsiva:
  
     ''' <summary>
    ''' Restituisce il primo controllo nella gerarchia di appartenenza
    ''' </summary>
    ''' <param name="ctr">Controllo di riferimento</param>
    ''' <param name="theParent">Controllo su cui effettuare la verifica</param>
    ''' <param name="ParentStop">Opzionale. Controllo "limite" entro il quale effettuare la ricerca</param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Private Function ParentIn2(ByVal ctr As Control, ByVal theParent As Control, Optional ByVal ParentStop As Control = Nothing) As Boolean
        '**********************************************************************
        ' Func: ParentRoot (Creazione: SB 20080827  Mod: )
        ' Desc: Verifica se un controllo appartiene ad un determinato contenitore
        ' Par : ctr         Controllo da cui partire
        '       theParent   Controllo di verifica
        '       [ParentStop]Opzionale. Controllo "limite" entro il quale effettuare la ricerca
        ' Ret : Boolean     True se ctr è contenuto in theParent
        '                         False se ctr NON è contenuto in theParent
        ' Note:
        '**********************************************************************
        If ctr Is Nothing OrElse ctr.Parent Is ParentStop Then Return False
        If TypeOf (ctr.Parent) Is Form Then Return False

        If ctr.Parent Is theParent Then Return True
        If ctr.Parent Is ParentStop Then Return False

        Return ParentIn(ctr.Parent, theParent)

    End Function
Categoria: VB.Net
martedì, 09 set 2008 Ore. 17.29
Statistiche
  • Views Home Page: 111.336
  • Views Posts: 567.365
  • Views Gallerie: 116.165
  • n° Posts: 227
  • n° Commenti: 222
Copyright © 2002-2007 - Blogs 2.0
dotNetHell.it | Home Page Blogs
ASP.NET 2.0 Windows 2003