2010-05-14 2 views

Répondre

2

Ce qui suit devrait énumérer tous les contrôles enfants pour vous.

IEnumerable<Control> GetAllChildControls(ControlCollection controls) 
{ 
    foreach(Control c in controls) 
    { 
    yield return c; 

    if(c.Controls.Count > 0) 
    { 
     foreach(Control control in GetAllChildControls(c.Controls)) 
     { 
     yield return control; 
     } 
    } 
    } 
} 
1

La propriété Controls contient uniquement les enfants directs du contrôle en cours. Si vous voulez parcourir tous les contrôles de la page, vous devrez parcourir les enfants de la page, puis parcourir récursivement leurs enfants, puis les enfants de leurs enfants, et cetera. Une méthode récursive est le moyen le plus simple de mettre en œuvre ceci.