Ответ 1
Убедитесь, что ваши события открыты как общедоступные. Например...
[Browsable(true)]
public event EventHandler MyCustomEvent;
Я создал элемент управления WinForms, который наследуется от System.Windows.Forms.UserControl... У меня есть некоторые пользовательские события в элементе управления, которые я бы хотел, чтобы потребитель моего элемента управления мог видеть. Во время разработки я не могу отображать мои события на вкладке "События" окна "Свойства". Это означает, что единственным способом назначить события является программная запись
myUserControl.MyCustomEvent += new MyUserControl.MyCustomEventHandler(EventHandlerFunction);
это нормально для меня, я думаю, но когда кто-то еще использует мой UserControl, они не будут знать, что эти события существуют (если они не читают библиотеку doco... да, правильно). Я знаю, что событие появится с помощью Intellisense, но было бы здорово, если бы оно также отображалось в окне свойств.
Убедитесь, что ваши события открыты как общедоступные. Например...
[Browsable(true)]
public event EventHandler MyCustomEvent;
Решение с использованием делегата. Например, я использовал для пользовательского ListView, который обрабатывал добавленное событие: Объявите своего делегата:
public delegate void ItemAddedHandler(object sender, ItemEventArgs e)
затем объявите событие, которое использует делегат:
[Browsable(true)]
public event ItemAddedHandler ItemAdded;
Примечание. ItemEventArgs - это настраиваемый EventArgs
Надежда может вам помочь, отлично работает для меня