在使用者控制項中實現事件並在主窗體中處理它們
建立自訂使用者控制項時,可能需要觸發應該觸發的事件由主窗體處理。這提供了靈活性,並允許在應用程式中的不同元件之間進行更好的控制。
要實現此功能,您需要在使用者控制項中建立事件處理程序,當控制項內發生事件時將引發該事件處理程序。這允許事件冒泡到主窗體,在那裡可以進行相應的處理。
例如,考慮具有數字上下控制項的自訂使用者控制項。當此控制項的值發生變更時,您希望主窗體更新顯示視窗。
事件處理代碼
在用戶控件中,建立一個事件處理程序數字上下控件,如下圖:
[Browsable(true)] [Category("Action")] [Description("Invoked when user clicks button")] public event EventHandler ButtonClick;
在數字上下在控制項的事件處理方法中,觸發ButtonClick事件冒泡到窗體上:
protected void Button1_Click(object sender, EventArgs e) { //bubble the event up to the parent if (this.ButtonClick != null) this.ButtonClick(this, e); }
在主視窗中,訂閱使用者控制的ButtonClick事件:
UserControl1.ButtonClick += new EventHandler(UserControl_ButtonClick);
最後在主視窗中處理此事件形式:
protected void UserControl_ButtonClick(object sender, EventArgs e) { //handle the event }
註解:
以上是如何在主窗體中實作和處理自訂使用者控制項事件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!