문제

HWND가 내 자녀 통제 중 하나에 속하는지 어떻게 알 수 있습니까?

나는 다음과 같은 일을하고 싶다 :

if(this.Controls.Find(hWnd) != null) return false;
도움이 되었습니까?

해결책

이에 대한 Win32 기능이 있습니다. ischild

다른 팁

재귀를 사용할 수있는 좋은 기회처럼 들립니다. 이 기능을 부모 수업에 추가하십시오.

  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);
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top