سؤال

لقد قمت بإنشاء عنصر تحكم WinForms يرث من System.Windows.Forms.UserControl...لقد حصلت على بعض الأحداث المخصصة لعنصر التحكم والتي أود أن يتمكن مستهلك عنصر التحكم الخاص بي من رؤيتها.لا أستطيع فعليًا عرض الأحداث الخاصة بي في علامة التبويب "الأحداث" في نافذة "الخصائص" أثناء وقت التصميم.وهذا يعني أن الطريقة الوحيدة لتعيين الأحداث هي الكتابة برمجياً

myUserControl.MyCustomEvent += new MyUserControl.MyCustomEventHandler(EventHandlerFunction);

أعتقد أن هذا جيد بالنسبة لي ولكن عندما يأتي شخص آخر لاستخدام UserControl الخاص بي، فلن يعرف أن هذه الأحداث موجودة (ما لم يقرأ مستند المكتبة...نعم صحيح).أعلم أن الحدث سيظهر باستخدام Intellisense ولكن سيكون من الرائع أن يظهر في نافذة الخصائص أيضًا.

هل كانت مفيدة؟

المحلول

تأكد من عرض الأحداث الخاصة بك للعامة.على سبيل المثال...

[Browsable(true)]
public event EventHandler MyCustomEvent;

نصائح أخرى

الحل باستخدام المندوب.على سبيل المثال، استخدمت ListView مخصصًا يتعامل مع حدث إضافة العنصر:أعلن مندوبك:

   public delegate void ItemAddedHandler(object sender, ItemEventArgs e)

ثم أعلن عن الحدث الذي يستخدم المفوض:

   [Browsable(true)]
   public event ItemAddedHandler ItemAdded;

ملحوظة :ItemEventArgs هو EventArgs مخصص

الأمل يمكن أن تساعدك، يعمل بشكل جيد بالنسبة لي

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top