2009-05-07 4 views

Répondre

3

Il y a une fonction Win32 pour cela: IsChild

2

sonne comme une grande chance d'utiliser récursivité. Ajouter cette fonction à votre classe parente:

private bool IsChild(System.Windows.Forms.Control control, System.IntPtr hWnd) 
    { 
    if(control.Handle == hWnd) 
     return(true); 

    foreach (System.Windows.Forms.Control child in control.Controls) 
    { 
     if (IsChild(child, hWnd)) 
      return (true); 
    } 
    return (false); 
    } 

Vous pouvez ensuite utiliser cette fonction pour rechercher cette classe mère pour tout enfant contrôle avec le hWnd spécifié:

this.IsChild(this, hWnd); 
+0

merci! J'espérais qu'il y avait un moyen plus rapide que d'itérer sur les contrôles enfants (surtout si le hWnd appartient à un enfant d'un enfant :)) –

Questions connexes