Frage

Wie kann ich feststellen, ob ein hWnd zu einem meiner geordneten Steuerelemente gehört?

Ich möchte etwas tun:

if(this.Controls.Find(hWnd) != null) return false;
War es hilfreich?

Lösung

Es gibt eine Win32-Funktion dafür: IsChild

Andere Tipps

Klingt wie eine große Chance, die Rekursion zu verwenden. Fügen Sie diese Funktion, um Ihre Elternklasse:

  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);
  }

Sie können dann diese Funktion nutzen diese übergeordnete Klasse für alle untergeordneten Steuerelemente mit dem angegebenen hWnd suchen:

this.IsChild(this, hWnd);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top