Просмотр времени разработки для событий пользовательского управления
-
02-07-2019 - |
Вопрос
Я создал элемент управления WinForms, который наследуется от System.Windows.Формы.Пользовательский контроль...У меня есть несколько пользовательских событий в элементе управления, которые я хотел бы, чтобы потребитель моего элемента управления мог видеть.На самом деле я не могу заставить свои события отображаться на вкладке События окна Свойств во время разработки.Это означает, что единственный способ назначить события - программно записать
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
Надеюсь, это поможет вам, у меня все нормально работает