用delegate 和event实现事件(有参数,无返回值)

//1、声明委托
public delegate void ConnectDelegate(bool state);
//2、声明委托事件
public event ConnectDelegate ConnectMakeEvent;
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
//3、订阅事件
ConnectMakeEvent += PlcConnectMake;
}
//4、触发事件
private void button1_Click(object sender, EventArgs e)//执行Click方法,触发事件
{
if (ConnectMakeEvent != null) //是否被订阅
ConnectMakeEvent(true); //发布事件
}
private void button2_Click(object sender, EventArgs e)
{
if(ConnectMakeEvent != null) //是否被订阅
ConnectMakeEvent(false); //发布事件

}
//5、执行的方法
private void PlcConnectMake(bool make)
{
if (make == true)
label1.Text = "打开连接";
else
label1.Text = "断开连接";
}

11

posted on 2025-09-30 17:19  lyc6921  阅读(20)  评论(0)    收藏  举报

导航