15

我创建了一个从 System.Windows.Forms.UserControl 继承的 WinForms 控件...我在控件上有一些自定义事件,我希望我的控件的使用者能够看到这些事件。在设计期间,我实际上无法让我的事件显示在“属性”窗口的“事件”选项卡中。这意味着分配事件的唯一方法是以编程方式编写

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

我猜这对我来说很好,但是当其他人来使用我的 UserControl 时,他们不会知道这些事件的存在(除非他们阅读了库 doco ......是的)。我知道该事件将使用 Intellisense 显示,但如果它也可以显示在属性窗口中,那就太好了。

4

2 回答 2

29

确保您的活动公开。例如...

[Browsable(true)]
public event EventHandler MyCustomEvent;
于 2008-09-27T02:53:05.640 回答
0

使用委托的解决方案。例如,我用于处理项目添加事件的自定义 ListView:声明您的委托:

   public delegate void ItemAddedHandler(object sender, ItemEventArgs e)

然后声明使用委托的事件:

   [Browsable(true)]
   public event ItemAddedHandler ItemAdded;

注意:ItemEventArgs 是一个自定义 EventArgs

希望可以帮助你,对我来说很好

于 2016-12-12T15:54:01.850 回答