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

الخميس، 12 ديسمبر 2013

إلغاء عجلة الفأرة في الأداة NumericUpDown


س: عند تحريك عجلة الفأرة أثناء وجود المؤشر Focus داخل الأداة NumericUpDown يتم إنقاص أو زيادة العدد الذي تعرضه الأداة.. فكيف يمكن منع هذا؟ 

ج: المكان المناسب لتعطيل أي وظيفة تؤديها عجلة الفأرة في أي أداة، هو الحدث MouseWheel.. لكن المعامل الثاني e لهذا الحدث من النوع MouseEventArgs، وهو لا يمتلك الخاصية Handled التي يمكن جعل قيمتها True لإلغاء الحدث.. فما العمل؟

المفاجأة هي أن المعامل e في الحدث MouseWheel (في كل الأدوات) هو في الحقيقة من نوع الفئة HandledMouseEventArgs التي تمتلك الخاصية Handled، لكن لسبب ما قررت ميكروسوفت أن تخفي عنك هذه الحقيقة وتكتب نوع المعامل من الفئة الأم MouseEventArgs.. لهذا كل ما عليك فعله هو تحويل نوع المعامل e إلى نوعه الأصلي، واستخدام الخاصية Handled الخاصة به لإلغاء حدث تحريك عجلة الفأرة كالتالي:

CType(e, HandledMouseEventArgs).Handled = True
وهذا هو كل شيء!

 

ملحوظة:

إذا أردت أيضا أن تمنع المستخدم من تغيير العدد المعروض في الأداة NumericUpDown عند ضغط السهم العلوي أو السهم السفلي من لوحة المفاتيح، فكل ما عليك هو وضع القيمة False في الخاصية InterceptArrowKeys:

NumericUpDown.InterceptArrowKeys = False

 

 

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

إرسال تعليق

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

صفحة الشاعر