2008-09-27 32 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

希望能幫到你,對我來說工作得很好

相關問題