Подтвердить что ты не робот

Просмотр времени разработки для событий управления пользователями

Я создал элемент управления WinForms, который наследуется от System.Windows.Forms.UserControl... У меня есть некоторые пользовательские события в элементе управления, которые я бы хотел, чтобы потребитель моего элемента управления мог видеть. Во время разработки я не могу отображать мои события на вкладке "События" окна "Свойства". Это означает, что единственным способом назначить события является программная запись

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

это нормально для меня, я думаю, но когда кто-то еще использует мой UserControl, они не будут знать, что эти события существуют (если они не читают библиотеку doco... да, правильно). Я знаю, что событие появится с помощью Intellisense, но было бы здорово, если бы оно также отображалось в окне свойств.

4b9b3361

Ответ 1

Убедитесь, что ваши события открыты как общедоступные. Например...

[Browsable(true)]
public event EventHandler MyCustomEvent;

Ответ 2

Решение с использованием делегата. Например, я использовал для пользовательского ListView, который обрабатывал добавленное событие: Объявите своего делегата:

   public delegate void ItemAddedHandler(object sender, ItemEventArgs e)

затем объявите событие, которое использует делегат:

   [Browsable(true)]
   public event ItemAddedHandler ItemAdded;

Примечание. ItemEventArgs - это настраиваемый EventArgs

Надежда может вам помочь, отлично работает для меня