事件

 public class Program
    {
        static void Main(string[] args)
        {
            MyButton btn = new MyButton();
            //注册事件,把btn_OnClick方法压入事件队列,
            //可以+=多个,这里简单点就压入一个吧。
            btn.OnClick += new MyButton.ClickHandler(btn_OnClick);

            Console.ReadKey();
        }
        //怎么看到这个函数很熟悉吧,就是你原来双击button自动产生的代码
        public static void btn_OnClick(object sender, ButtonClickArgs e)
        {
            Console.WriteLine("真贱,我居然被ivy点击了!");
        }

    }
    //这里自定义一个EventArgs,因为我想知道Clicker
    public class ButtonClickArgs : EventArgs
    {
        public string Clicker;
    }
    public class MyButton
    {
        //定义一个delegate委托
        public delegate void ClickHandler(object sender, ButtonClickArgs e);
        //定义事件,类型为上面定义的ClickHandler委托
        public event ClickHandler OnClick;

        public void Click()
        {
            //...触发之前可能做了n多操作
            //.....

            //这时触发Click事件,并传入参数Clicker为本博主ivy
            OnClick(this, new ButtonClickArgs() { Clicker = "ivy" });
        }
    }
原文地址:https://www.cnblogs.com/hvaning/p/5886004.html