当前位置:   article > 正文

C# -> C#订阅事件

C# -> C#订阅事件

可以在用户控件中添加一个事件,并在主窗体中订阅该事件。

具体做法如下:

  1. 在用户控件中添加一个 PictureBox 控件,并为其添加一个 Click 事件。

  2. 在该事件中触发一个自定义事件,并传递需要的参数。

  3. 在主窗体中定义一个方法,用于处理自定义事件。

  4. 在主窗体的构造函数中订阅自定义事件。

以下是具体代码实现:

在用户控件中添加 PictureBox 控件和 Click 事件

  1. public partial class ModbusWareHouseOneControl : UserControl
  2. {
  3. // 定义自定义事件
  4. public event EventHandler<PictureBoxClickEventArgs> PictureBoxClick;
  5. public ModbusWareHouseOneControl()
  6. {
  7. InitializeComponent();
  8. }
  9. private void pictureBox1_Click(object sender, EventArgs e)
  10. {
  11. // 触发自定义事件,并传递需要的参数
  12. PictureBoxClick?.Invoke(this, new PictureBoxClickEventArgs("参数1", "参数2"));
  13. }
  14. }

在主窗体中定义方法,用于处理自定义事件

  1. public partial class MainForm2 : Form
  2. {
  3. public MainForm2()
  4. {
  5. InitializeComponent();
  6. // 订阅自定义事件
  7. modbusWareHouseOneControl1.PictureBoxClick += ModbusWareHouseOneControl_PictureBoxClick;
  8. }
  9. private void ModbusWareHouseOneControl_PictureBoxClick(object sender, PictureBoxClickEventArgs e)
  10. {
  11. // 处理自定义事件
  12. // ...
  13. }
  14. }

自定义事件的参数类型为 PictureBoxClickEventArgs,可以根据需要自行定义。在上面的示例中,参数类型包含两个字符串类型的属性,分别为 Param1 和 Param2

  1. public class PictureBoxClickEventArgs : EventArgs
  2. {
  3. public string Param1 { get; private set; }
  4. public string Param2 { get; private set; }
  5. public PictureBoxClickEventArgs(string param1, string param2)
  6. {
  7. this.Param1 = param1;
  8. this.Param2 = param2;
  9. }
  10. }

这样,在用户控件中,当 PictureBox 被点击时,会触发自定义事件,并将参数传递给主窗体中的处理方法进行处理。

案例一:

筒仓三维超声波扫描料位计(删除用户控件用法)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/680346
推荐阅读
相关标签
  

闽ICP备14008679号