Звучит как отличный шанс использовать рекурсию. Добавьте эту функцию в ваш родительский класс:
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);
}
Затем вы можете использовать эту функцию для поиска в этом родительском классе любых дочерних элементов управления с указанным hWnd:
this.IsChild(this, hWnd);