2008-12-13 101 views
3

我是UserControls的新手,在開發自己的控件時,我發現 在設計時顯示屬性網格中的控件事件。 如果我在我的控件中有一些事件,我希望在屬性網格中看到它們,如果我雙擊它,我想要一個處理程序,就像Microsoft爲其控件一樣。UserControl中的事件

回答

3

如果我沒有弄錯,它們應該會自動出現。確保你已經構建了你的項目,或者更改不會傳播給開放設計師。並確保它也是一個public事件。 (私人/保護事件理所當然不應該出現,因爲他們無法訪問。)

有一兩件事你可以做,使您的用戶設計經驗更好是做類似如下:

[Description("This event is raised when the user presses the enter key while the control has focus."), 
    Category("Key")] 
    public event EventHandler EnterPressed; 

「描述」位在屬性窗口的描述面板中顯示一條好消息。 「類別」位將其置於某個類別中(默認爲最終的雜項)。

順便說一句,你還沒有指定一種語言或環境,所以如果它不是C#在Visual Studio 2005+中可能需要修改上述。

1

我通常使用這種模式,打造在用戶控件自定義事件:

#region MyEvent CUSTOM EVENT 

    protected virtual void OnMyEvent(MyEventEventArgs e) 
    { 
     if (MyEvent != null) 
      MyEvent(this, e); 
    } 

    public delegate void MyEventHandler(object sender, MyEventEventArgs e); 
    public event MyEventHandler MyEvent; 

    public class MyEventEventArgs : EventArgs 
    { 

    } 

    #endregion MyEvent CUSTOM EVENT 

這微軟事件的相同的命名規則,你可以從你的控制中火OnMyEvent,定製的EventArgs,處理MyEvent來自其他控件。

0

您應該在UserControl上使用Delegate,並在Main頁面(aspx頁面)將其提升。如果這種方式不起作用,註冊UserControlID時應該小心。它需要與其他UserControl不同。每個UserControl都需要一個ID 。

相關問題