12-12-15, 05:28 AM
السلام عليكم ورحمة الله وبركاته
أحيانا و عندما تقوم بكتابة كونترول جديد قد نحتاج إلي الحصول علي الكونترول الموجود به الكونترول الخاص بنا وأيضا قد نحتاج أن نحصل علي الفورم الموجود به الكونترول الخاص بنا
عموما علليك ان تعلم ان مايكروسوفت و لسبب ما جعلت من هذا الأمر مخفيا خلال جميع الكونترول الخاصة بها
و للحصول علي الكونترول الموجود به الكونترول الخاص بنا أضف الي الكونترول الخاص بك الصفة التالية ومن الأفضل أن تجعها من النوع Friend
و للحصول علي الفورم الموجود به الكونترول الخاص بنا أضف الي الكونترول الخاص بك الصفة التالية ومن الأفضل أن تجعها من النوع Friend
الكونترول التالي يوضح شكل الكود كاملا
يمكن إستخدام نفس الفكرة مع أي كونترول نقوم ببناؤه أو يتم توريثه من اي كونترول أخر
بالتوفيق للجميع
أحيانا و عندما تقوم بكتابة كونترول جديد قد نحتاج إلي الحصول علي الكونترول الموجود به الكونترول الخاص بنا وأيضا قد نحتاج أن نحصل علي الفورم الموجود به الكونترول الخاص بنا
عموما علليك ان تعلم ان مايكروسوفت و لسبب ما جعلت من هذا الأمر مخفيا خلال جميع الكونترول الخاصة بها
و للحصول علي الكونترول الموجود به الكونترول الخاص بنا أضف الي الكونترول الخاص بك الصفة التالية ومن الأفضل أن تجعها من النوع Friend
PHP كود :
' Retrieve container of our control
Public Property Owner As Control
Get
Return MyBase.Parent
End Get
Set(value As Control)
If MyBase.Parent IsNot value Then
If value Is Nothing Then
value.Controls.Add(Me)
End If
End If
MyBase.Parent.Controls.Remove(Me)
End Set
End Property
و للحصول علي الفورم الموجود به الكونترول الخاص بنا أضف الي الكونترول الخاص بك الصفة التالية ومن الأفضل أن تجعها من النوع Friend
PHP كود :
' ' Retrieve form of our control
Public ReadOnly Property Form As ContainerControl
Get
Dim _designer As Control = MyBase.Parent
While _designer IsNot Nothing
If TypeOf _designer Is ContainerControl Then
Return TryCast(_designer, ContainerControl)
End If
_designer = _designer.Parent
End While
Return Nothing
End Get
End Property
الكونترول التالي يوضح شكل الكود كاملا
PHP كود :
Public Class CairoControl
Inherits Control
' Retrieve container of our control
Public Property Owner As Control
Get
Return MyBase.Parent
End Get
Set(value As Control)
If MyBase.Parent IsNot value Then
If value Is Nothing Then
value.Controls.Add(Me)
End If
End If
MyBase.Parent.Controls.Remove(Me)
End Set
End Property
' ' Retrieve form of our control
Public ReadOnly Property Form As ContainerControl
Get
Dim _designer As Control = MyBase.Parent
While _designer IsNot Nothing
If TypeOf _designer Is ContainerControl Then
Return TryCast(_designer, ContainerControl)
End If
_designer = _designer.Parent
End While
Return Nothing
End Get
End Property
End Class
يمكن إستخدام نفس الفكرة مع أي كونترول نقوم ببناؤه أو يتم توريثه من اي كونترول أخر
بالتوفيق للجميع