将事件向上传递到用户控件层次结构
在自定义用户控件中,通常希望使控件中引发的事件可供主控件访问形式。当尝试处理源自子控件的事件(例如数字上下控件中的值更改)时,这一点变得很明显。
创建事件处理程序
要解决此问题挑战,在用户控件中创建一个事件处理程序,当所需事件发生时触发该事件处理程序。此事件处理程序应将事件“冒泡”到表单,使其能够处理该事件。
示例代码
考虑一个带有名为“Button1”的按钮的用户控件":
用户控制:
[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 }
注释
以上是如何将事件从用户控件传递到其父窗体?的详细内容。更多信息请关注PHP中文网其他相关文章!