2009-09-21 56 views
0

所以我有一個自定義的用戶控件。我有一個事件(的SelectionChanged),我希望有誰曾經用我的控制做到以下幾點掛鉤事件:ASP.Net用戶控件 - VS事件連接

  1. 將控件的頁面
  2. 在設計模式下,點擊控制
  3. 視圖控件的事件處理程序(從屬性窗口)
  4. 找到SelectionChanged事件
  5. 雙擊並讓Visual Studio中創建背後函數的代碼和aspx頁面上線了。

我該如何做到這一點?我有控制設置,以便用戶可以手動鍵入事件接線和事件代碼,但我希望Visual Studio能夠完成此操作。

當前,當開發者已經將我的控件放在頁面上時,他們可以點擊它並查看屬性,但沒有事件可用(閃電甚至不存在)。


我的活動是公開的。他們是:

public delegate void SelectionChangedDelegate(object sender, SelectionChangedEventArgs e); 
public event SelectionChangedDelegate SelectionChangedEvent; 
+0

您是否將您的活動定義爲公開? – shahkalpesh 2009-09-21 19:04:48

+0

看看這個鏈接是否有幫助 - http://msdn.microsoft.com/en-us/library/t4z863dh%28VS.71%29.aspx – shahkalpesh 2009-09-21 19:31:14

+0

Shahkalpesh,我不知道鏈接如何幫助。我能夠創建我的控制,沒有任何編碼問題,但我希望V.S.爲我創建事件處理程序。我不希望其他開發人員必須輸入「protected void UC_SitesBar_SelectionChanged(object sender,SelectionChangedEventArgs e){}」。只要你想訂閱我的活動,這似乎是一個巨大的麻煩。 – Miles 2009-09-21 22:26:55

回答

2

我不明白閃電怎麼沒有。您的控件是繼承自System.Web.UI.HtmlControls.HtmlControl還是System.Web.UI.Control或其他派生控件?

如果您從其中一個控件繼承,則應該在屬性窗口中看到繼承的事件。

閃電不在那裏的事實導致我相信你不是從一個控制類繼承。

編輯: 那麼,你不會喜歡這個。 UserControl的行爲與WebControl不同。因此,VS編輯器不會連接事件。

如果事件連接對你是至關重要的(如果這將是一個已售出的庫),我建議你將控件重寫爲WebControl。這將需要您在CreateChildControls重寫方法中以編程方式添加所有控件。

您可能也可以將您的UserControl封裝在WebControl內部,並以這種方式冒泡所有事件。

祝你好運!

+0

下面是我的類的聲明:public partial class UC_SiteBar:System.Web.UI.UserControl – Miles 2009-09-21 22:23:01