تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
Retrieve Owner and Form of a Control
#1
السلام عليكم ورحمة الله وبركاته

أحيانا و عندما تقوم بكتابة كونترول جديد قد نحتاج إلي الحصول علي الكونترول الموجود به الكونترول الخاص بنا وأيضا قد نحتاج أن نحصل علي الفورم الموجود به الكونترول  الخاص بنا

عموما علليك ان تعلم ان مايكروسوفت و لسبب ما جعلت من هذا الأمر مخفيا خلال جميع الكونترول الخاصة بها

و للحصول علي الكونترول الموجود به الكونترول الخاص بنا أضف الي الكونترول الخاص بك الصفة التالية ومن الأفضل أن تجعها من النوع 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
(_designerContainerControl)
 
               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 

يمكن إستخدام نفس الفكرة مع أي كونترول نقوم ببناؤه أو يتم توريثه من اي كونترول أخر

بالتوفيق للجميع
الرد }}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  Blend Form silverlight 0 104 11-10-17, 05:11 PM
آخر رد: silverlight
  تصميم ثيمات للكونترول Control Theme silverlight 4 636 23-06-17, 02:34 AM
آخر رد: ابراهيم كركوكي
Rainbow Toolbox in VB.NET - Common Controls - Lesson One - Button Control Properties Genius Live 19 5,550 17-06-17, 01:11 PM
آخر رد: نوره
  Control Finder Class silverlight 3 350 03-12-16, 06:11 AM
آخر رد: أبو عمر
  Generic Delegates & ًWindows Forms Control - Part 2 silverlight 0 495 19-01-16, 02:01 PM
آخر رد: silverlight
  Generic Delegates & ًWindows Forms Control - Part 1 silverlight 1 524 16-01-16, 06:35 PM
آخر رد: 10468
  [كود] Line Control silverlight 0 396 14-01-16, 03:03 PM
آخر رد: silverlight
  Capture Mouse Position within Control Coordinates silverlight 0 416 11-12-15, 10:30 PM
آخر رد: silverlight
  [كود] تأثيرات على Form او على Objects HASAN6.0 4 829 30-11-15, 10:36 PM
آخر رد: Bettayeb
  [مقال] Fun with Windows Forms & Graphics - Spy Form silverlight 1 749 23-06-15, 09:33 PM
آخر رد: silverlight

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم