您需要为用户控件创建事件处理程序,该事件处理程序在触发用户控件中的事件时引发。这将使您能够在事件链上冒泡,以便可以从表单中处理事件。
当点击
Button1UserControl时,我将
Button1_Click触发
UserControl_ButtonClick在表单上触发的事件:
用户控件:
[Browsable(true)] [Category("Action")] [Description("Invoked when user clicks button")]public event EventHandler ButtonClick;protected void Button1_Click(object sender, EventArgs e){ //bubble the event up to the parent if (this.ButtonClick!= null) this.ButtonClick(this, e); }
形成:
UserControl1.ButtonClick += new EventHandler(UserControl_ButtonClick);protected void UserControl_ButtonClick(object sender, EventArgs e){ //handle the event }
笔记:
较新的Visual Studio版本建议
if (this.ButtonClick!= null) this.ButtonClick(this, e);
您代替使用ButtonClick?.Invoke(this, e);
,它的作用基本相同,但更短。该
Browsable
属性使事件在Visual Studio的设计器(事件视图)中可见,Category
并在“动作”类别中显示该事件,并Description
提供对其的描述。您可以完全省略这些属性,但是由于VS可以为您处理,因此使设计者可以轻松使用它们。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)