1
hWndが私の子コントロールの1つに属しているかどうかをどのようにして知ることができますか?これは私の子供ですか?
if(this.Controls.Find(hWnd) != null) return false;
hWndが私の子コントロールの1つに属しているかどうかをどのようにして知ることができますか?これは私の子供ですか?
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);
ありがとうございます!私は、子コントロールよりも速い方法があることを望んでいました(特に、hWndが子の子に属している場合:)) –