Просмотр времени проектирования для событий пользовательского контроля - PullRequest
13 голосов
/ 27 сентября 2008

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

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

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

Ответы [ 2 ]

26 голосов
/ 27 сентября 2008

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

[Browsable(true)]
public event EventHandler MyCustomEvent;
0 голосов
/ 12 декабря 2016

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

   public delegate void ItemAddedHandler(object sender, ItemEventArgs e)

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

   [Browsable(true)]
   public event ItemAddedHandler ItemAdded;

Примечание. ItemEventArgs - это пользовательский EventArgs

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...