المتابعون للمدونة

الأربعاء، 7 يونيو 2017

UpDownButtons


أزرار الزيادة والإنقاص
UpDownButtons 

هل احتاج أحدكم يوما في مشاريع نماذج الويندوز إلى أداة تشبه الزرين الصغيرين الموجودين في جانب الأداة الرقمية NumericUpDown لوضعها داخل أداة خاصة به؟

طالما واجهتني هذه المشكلة، وكنت أحلها بوضع زرين عاديين ووضع صورتي سهم لأعلى وسهم لأسفل عليهما.

لكنني قررت مؤخرا أن أستعير الزرين الخاصين بالأداة NumericUpDown لاستخدامهما في أداة خاصة بي.

لفعل هذا، فحصت كود هذه الأداة NumericUpDown وكود الفئة الأم التي جاءت منها وهي UpDownBase.. لا تنسوا أن دوت نت صارت مفتوحة المصدر الآن، ويمكنكم رؤية كود فئات إطار العمل بل وكود لغات البرمجة نفسها Compilers.. يمكن الاطلاع على كود الفئة UpDownBase هنا.

بداخل هذه الفئة وجدت فئة اسمها UpDownButtons هي المسئولة عن رسم زر الزيادة وزر الإنقاص، فنسخته وقمت بتعديله بحذف بعض الأجزاء غير الضرورية، وجعلها مستقلة لأستطع عرض الزرين بمفردهما، ومن ثم استطعت استخدامها في إنشاء أداة خاصة بي هي أداة اختيار المدة الزمنية TimeSpanPicker (سأحدثكم عنها لاحقا بإذن الله).

لاحظوا أن الأداة UpDownButtons لا تحتوي على أي أزرار، وإنما تستخدم الحدث Paint لرسم الزرين باستخدام فئة رسم الأدوات ControlPaint، وهي تستطيع رسم الأجزاء الداخلة في تكوين الأدوات مثل أزرار العناوين وزر الإسدال وزر الزيادة وزر الإنقاص ومستطيل التحديد .... إلخ.
يمكنكم تحميل كود هذه الفئة من هنا:

وبمجرد إضافتها إلى أي مشروع وترجمته، ستظهر في أعلى صندوق الأدوات حيث يمكنكم وضعها على النموذج (هذا غير عملي) أو وضعها على أداة المستخدم UserControl لتكون جزءا من أداة جديدة خاصة بكم.

وكل ما عليكم هو كتابة الكود المناسب في الحدث Resize الخاص بأداة المستخدم، لضبط موضعها وحجمها بالنسبة للأداة الأم كلما تغير حجمها.

ويمكن استخدام الحدثUpDown الخاص بالأداة UpDownButtons للتفاعل مع ضغطات الأزرار، فالمعامل e الخاص به يمتلك الخاصية ButtonID التي تكون قيمتها 1 أثناء ضغط زر الزيادة، و 2 أثناء ضغط زر الإنقاص.

 

 

ليست هناك تعليقات:

إرسال تعليق

ملحوظة: يمكن لأعضاء المدونة فقط إرسال تعليق.

صفحة الشاعر