الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

فكرة حول Custom Control وإستفسارات اخرى

مغلق
بدأه hazzoom في 12 سبتمبر 2005 · 4 رد · 760 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم :

نحتاج في بعض الأحيان الي اضافة Properties الي بعض الأدوات فهل تستطيع عمل Property بهذا الشكل :

12_09_05_08_23_25_1126538605pp.JPG

طريقة عمل مثل هذه الـProperty يكون عن طريق عمل Enumeration هكذا :

    Dim selenu As formenum

    Enum formenum
        state0
        state1
        state2
    End Enum

    Public Property formenu() As formenum
        Get
            Return selenu
        End Get
        Set(ByVal Value As formenum)
             selenu=Value
        End Set
    End Property

لكن أنا أريد معرفة كيفية عمل Property بهذا الشكل ..... :

12_09_05_08_05_53_1126537553p.jpg

سؤال تاني :

أثناء قراءتي للأكواد والكتب أجد سطر في الكود بهذا الشكل الغريب :

<System.ComponentModel.DefaultEvent("DistanceChanged")>

عامة ما وظيفة الكود عندما يكون بهذا الشكل ؟؟؟ وما هي استخداماته ؟؟؟

وهل لدي أحد رابط كتاب في الـ OOP غير كتاب ميكروسوفت ؟؟؟

تم تعديل هذه المشاركة بواسطة hazzoom في 13 سبتمبر 2005 في 14:41

#2

بالنبسبة لسؤالك الاول يمكن عمل التالي من أجل الحصول على الخاصية على الشكل الذي تريد

Dim m_Dock As DockStyle
    Public Property Ayoub() As DockStyle
        Get
            Return m_Dock
        End Get
        Set(ByVal Value As DockStyle)
            m_Dock = Value
        End Set
    End Property

أما الكود الذي وضعته فحقيقة اول مرة اراه و أن شاء الله لو عرفت معناه سأخبرك

بالنسبة للكتاب فأنا عندي كتاب اسمه

Prentice Hall - Deitel - Visual Basic .Net How To Program, 2nd

و هو كتاب حول الفيبي . نت عامة و يشرح فيه ال OOP بطريقة جميلة و واضحة

ان شاء الله احمله في موقعي و أضع لك الرابط :)

تم تعديل هذه المشاركة بواسطة crazy-man في 12 سبتمبر 2005 في 22:27

#3

السلام عليكم

اقتباس
لكن أنا أريد معرفة كيفية عمل Property بهذا الشكل ..... :

هذا النوع من الخواص يتم إنشاءه عن طريق ما يعرف بـ type Editors وهو موجود في System.Drawing.Design

System.Drawing.Design.UITypeEditor

يمكنك من إنشاء واجهة للخاصية, فهي متوسطة المستوى لابد أن تعرف قبلها تعريف الخواص و مثلاً Type Converters

للتمكن من عمل قالب برمجي form يقوم بالظهور عن الضغط على تلك الخاصية .

<System.ComponentModel.DefaultEvent("DistanceChanged")>

هذا يحفظك الله هي صفة attribute لهذا العنصر أو القالب وهي أن عند الضغط المزدوج عليه سيكون الحدث الذي يذهب بك المترجم إليه هو الحدث Distance Changed

وكما تعلم أن عند الضغط المزدوج على العنصر Textbox فإن المترجم يذهب بك الى الحدث click وهذا مشابه لما في الاعلى

مع إختلاف نوع الحدث فقط لا غير .

الان هذا مثلاً

<DefaultEvent("MouseLeave")> _
Public Class SuperTextBox

الان هذا الـ TextBox عينا له ان إذا حازم ضغط عليه ضغط مزدوج فاذهب به إلى الحدث ترك الفأرة MouseLeave

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

أن للخصائص صفات خاصة بهن.

أما System.ComponentModel فهو مخصص لإعطاء العناصر Custom Control التي نبنيها صفات لها

مثلاً لا حصرًا صفة القيمة الافتراضية و صفة عند أختيار العنصر على اي صفه يركن التركيز مثلاً في الـ TextBox تلقائي يركن على

الخاصية Text وووو أشياء كثيرة .

والله أعلم.

في المثال يتضح المقال

#5

جزاك الله خيرا يا crazy-man وأنا مستني كتابك بفارغ الصبر ,,,

ربنا يكرمك يا غملاسي بالفعل رائع , لكن أعتقد طريقة الـ DockStyle أسهل الا اذا كان هناك فرق فياريت تقولنا عليه ؟؟؟ ,,,

وياريت يا جماعه أي حد عنده كتاب يتناول شرح النقاط السابقه يضع له رابط أو يرفقه ... ,,,

جزاكم الله خيرا ....,,,

هذا الموضوع مغلق.

مواضيع مشابهة