如何判断hWnd是否属于我的一个子控件?
我想做类似的事情:
if(this.Controls.Find(hWnd) != null) return false;
答案 0 :(得分:3)
这有一个Win32功能:IsChild
答案 1 :(得分:2)
听起来很有可能使用递归。将此函数添加到您的父类:
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);