参考MSDN:
EventHandler<TEventArgs> 委托 (System) | Microsoft Docs
using System;
using System.Windows.Forms;
namespace TwoFormtTranslate
{
public partial class Form1 : Form
{
private readonly Form2 Fm2 = new Form2();
public Form1()
{
InitializeComponent();
}
private void Button1_Click(object sender, EventArgs e)
{
Fm2.EventTransmit += RefreshLabelText; //添加自定义事件
Fm2.Show(); //显示窗体2
}
private void RefreshLabelText(object sender, DataTransmit e)
{
label2.Text = e.My_Data.ToString(); //更新数据
}
}
public partial class Form2 : Form
{
public event EventHandler<DataTransmit> EventTransmit;//自定义事件
public Form2()
{
InitializeComponent();
}
private void Button1_Click(object sender, EventArgs e) //按下按钮开始传送
{
DataTransmit datatransmit = new DataTransmit(); //创建一个事件类的实例,将做为事件数据传送给触发器
if (textBox1.Text != String.Empty)
{
datatransmit.My_Data = int.Parse(textBox1.Text);
}
TriggerEvent(datatransmit); //去触发
}
protected virtual void TriggerEvent(DataTransmit e) //传送事件触发器
{
EventHandler<DataTransmit> Hander = EventTransmit;//创建一个自定义事件的实例
Hander?.Invoke(this, e);//触发传送
}
}
public class DataTransmit : EventArgs //自定义事件类,继承自事件基类
{
public int My_Data { get; set; }//自定义属性字段
}
}