السلام عليكم ورحمة الله وبركاته
أنا مبتدئ وجديد في المنتدى واتمنى أن أستفيد وأفيد وهذا أول درس أقدمه بالرغم من أنه ليس درس بل مجرد فكرة بسيطة، دعوني أبدأ
بسم الله الرحمن الرحيم
مقدمة
لن تقوم فعيا بعملية وراثة معقدة كل ما ستفعله هو بعض الإضافات، وهي فكرة سهلة وموجودة في الكتب المعروفة مثل كتاب حمدي غانت (أحتراف فيجوال بيزك دوت نيت) وكتاب تركي العسيري ، بالمناسبة شكر جزيل لهم لقد استفدت حقا من هذه الكتب الالكترونية، عموما الأداة (control)في فيجوال بيزك دوت نت وليس أي أداة يمكن وراثتها وهذا يعني أنه يمكن أضافة خصائص ودوال وأجراءات. ولكن الفكرة في كيفية الاستفادة من هذه الميزة. رأيت في بعض الأمثلة أنه يتم وراثة TextBox وإضافة خصاءص مثل Autoselect أو AutoClear مثلا لجعل النص يحدد تلقائيا عند الانتقال إلى مربع النص أو يمحى تلقائيا وهكذا الاستعمال حسب الغرض،
الفكرة التي استفدتها من هنا أنني قمت بوراثة Picturebox عندها بدأت أفكر ماذا أضيف من خصائص أو دوال؟ حسنا ما رأيكم في PictureBox تكبر نفسها قليلا عند مرور المؤشر فوقها يمكن استعمالها كزر.
الخطوات
أنشئ مشروع جديد وأختر Windows control library لن تظهر Form1 كالعادة بل User control1
أنتقل إلى الكود ستراه كالأتي:
Public Class Usercontrol1
Inherits System.Windows.Forms.Usercontrol
Sub New()
MyBase.New()
End Sub
End Class
غير اسم الفئة كما يحلو لك وغير الأتجاه الوراثي من
System.Windows.Forms.Usercontrol
ألى
System.Windows.Forms.picturebox
بعدها تضيف الخصائص أو تستغل الأحداث كما في الكود المرفق ولكن قبل التنفيذ يجب عليك أدراج هذه الأداة في مشروع ، أختر File > add Project > New Project
وهذه المرة WindowsAplication
أنقر بالزر الأيمن في لوحة الأدوات وأختر Add Remove Items
أنتقل إلى .NetComponent ثم Browse واذهب إلى حيثما تخزن مشاريعك أي إلى المشروع الحالي في مجلد Bin ستجد ملف DLL أختره وستندرج الأداة مع الأدوات السابقة ضعها في الفورمستجد أنها PictureBox ولكنها تقوم بالوضائف التي منحتها إياها.
ملاحضة
في الفصل السادس عشر(مواضيع متقدمة) من كتاب تركي العسيري ص572 ستجد شرح وافي لوراثة أداة.
عندما ترى الكود البسيط (الذي هو عبارة عن عمليات حسابية بسيطة)وتنفذ المشروع سوف تفهم الفكرة بالتأكيد لذا لا تقلق من أنني لم أشرح خطوات الدرس بشكل جيد
وهنا SourceCode هذة الفكرة
يمكن تحسينها بأضافة خاصية لتحديد معدل التكبير وعموما فهي تكبر فسها بنسبة مؤوية يعني لا تتأثر بالتكبير والتصغير
أعتذر لأني لا أتردد على المنتدى كثيرا وذلك لظروف مادية لذالك ربما لا أرد على المواضيع سريعا.