首页 >后端开发 >C++ >如何处理主窗体中的用户控制事件?

如何处理主窗体中的用户控制事件?

Susan Sarandon
Susan Sarandon原创
2025-01-04 11:07:34306浏览

How Can I Handle User Control Events from My Main Form?

在主窗体中处理 UserControl 事件

在用户界面设计中,通常为特定功能创建自定义用户控件。但是,有时需要在主窗体级别处理用户控件内的事件。

要实现此目的,请为用户控件创建一个事件处理程序,该事件处理程序可以在触发控件内的事件时引发。这允许事件在链上冒泡,使您能够在表单级别处理它。

示例:

考虑一个带有数字向上向下的自定义用户控件(NUD)控制。当 NUD 的值发生变化时,您希望主窗体更新显示窗口。

用户控件:

[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
    this.ButtonClick?.Invoke(this, e);
}

Main形式:

UserControl1.ButtonClick += new EventHandler(UserControl_ButtonClick);

protected void UserControl_ButtonClick(object sender, EventArgs e)
{
    //handle the event
}

注释:

  • 较新版本的 Visual Studio 为冒泡事件提供了更简洁的语法:ButtonClick?.Invoke( this, e);
  • 可浏览、类别和描述属性增强了用户界面,使事件可在设计器中访问并提供描述。

以上是如何处理主窗体中的用户控制事件?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn