C# -> C#订阅事件

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

具体做法如下:

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

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

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

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

以下是具体代码实现:

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

复制代码
public partial class ModbusWareHouseOneControl : UserControl
{
    // 定义自定义事件
    public event EventHandler<PictureBoxClickEventArgs> PictureBoxClick;

    public ModbusWareHouseOneControl()
    {
        InitializeComponent();
    }

    private void pictureBox1_Click(object sender, EventArgs e)
    {
        // 触发自定义事件,并传递需要的参数
        PictureBoxClick?.Invoke(this, new PictureBoxClickEventArgs("参数1", "参数2"));
    }
}

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

复制代码
public partial class MainForm2 : Form
{
    public MainForm2()
    {
        InitializeComponent();

        // 订阅自定义事件
        modbusWareHouseOneControl1.PictureBoxClick += ModbusWareHouseOneControl_PictureBoxClick;
    }

    private void ModbusWareHouseOneControl_PictureBoxClick(object sender, PictureBoxClickEventArgs e)
    {
        // 处理自定义事件
        // ...
    }
}

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

复制代码
public class PictureBoxClickEventArgs : EventArgs
{
    public string Param1 { get; private set; }
    public string Param2 { get; private set; }

    public PictureBoxClickEventArgs(string param1, string param2)
    {
        this.Param1 = param1;
        this.Param2 = param2;
    }
}

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

案例一:

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

相关推荐
椒颜皮皮虾྅4 小时前
OpenVINO C# API 3.3.1:支持OpenVINO 2026.3及GenAI增强
人工智能·c#·openvino
半亩码田7 小时前
C#转Python第3.1篇:Python 的 class 没有访问修饰符?面向对象的另一条路
开发语言·python·c#
唐青枫14 小时前
别再手写 args[0]:C#.NET CommandLineParser 命令行工具实战详解
c#·.net
LccKyI14 小时前
C#学习day06(方法/函数及其关键字,附思维导图)
经验分享·学习·c#
.Peter15 小时前
.NET/WPF 程序在部分 Windows 电脑无法保存用户环境变量:使用 DPAPI 实现安全兼容
windows·信息安全·c#·.net·wpf·环境变量·dpapi
农村小镇哥16 小时前
怎么把HTM格式转化成WORD
ui·c#·word
农村小镇哥16 小时前
C#读取CSV文件的方法
服务器·数据库·c#
FuckPatience17 小时前
C# 报错参数无效
c#
北域码匠1 天前
PID 控制算法完整详解(C# 原生实现,无第三方库)
c#·pid控制·工控开发·闭环控制·自动控制算法·数字pid·增量式pid
离陌在学C#1 天前
C# 重载与重写:深入理解面向对象编程的核心概念
java·c#