本文主要是介绍C# -> C#订阅事件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
可以在用户控件中添加一个事件,并在主窗体中订阅该事件。
具体做法如下:
-
在用户控件中添加一个
PictureBox
控件,并为其添加一个Click
事件。 -
在该事件中触发一个自定义事件,并传递需要的参数。
-
在主窗体中定义一个方法,用于处理自定义事件。
-
在主窗体的构造函数中订阅自定义事件。
以下是具体代码实现:
在用户控件中添加 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
,可以根据需要自行定义。在上面的示例中,参数类型包含两个字符串类型的属性,分别为 Param1
和 Param2
。
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
被点击时,会触发自定义事件,并将参数传递给主窗体中的处理方法进行处理。
案例一:
筒仓三维超声波扫描料位计(删除用户控件用法)
这篇关于C# -> C#订阅事件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!