هذا hWnd عنصر الطفل من الألغام؟
سؤال
وكيف يمكنني معرفة ما إذا كان 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);
لا تنتمي إلى StackOverflow