用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  阅读(11)  评论(0)    收藏  举报

导航