2008-09-27 59 views
11

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

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

这是为我好我猜想,但只有这样,当别人来使用我的用户,他们是不会知道存在这些事件(除非他们读图书馆doco ...是的)。我知道这个事件会使用Intellisense显示出来,但是如果它也可以显示在属性窗口中,它会很棒。

回答

23

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

[Browsable(true)] 
public event EventHandler MyCustomEvent; 
+0

这是一个公共的自定义事件处理程序,事件处理程序类型是一个公共代表......没有在功能上是错误的......事件以正确的方式工作和开火,这纯粹是一个设计时间问题。 – 2008-09-27 02:54:46

0

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

public delegate void ItemAddedHandler(object sender, ItemEventArgs e) 

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

[Browsable(true)] 
    public event ItemAddedHandler ItemAdded; 

注:ItemEventArgs是定制的EventArgs

希望能帮到你,对我来说工作得很好