简单Event事件的组成

Posted 1521681359qqcom

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单Event事件的组成相关的知识,希望对你有一定的参考价值。

class Program
    {
        static void Main(string[] args)
        {
            Form form = new Form();//form是事件的拥有者
            Controler controler = new Controler(form);//controler是事件的响应者
            form.ShowDialog();
            
            
        }
    }
    class Controler
    {
      private  Form form;
      public Controler(Form form)
      {
            if(form!=null)
            { 
                this.form = form;
            this.form.Click += this.FormClick;//是事件订阅,click是事件
            }
      }

      private void FormClick(object sender, EventArgs e)//事件的处理器
      {
          this.form.Text = DateTime.Now.ToString();
      }

    }

  static void Main(string[] args)
        {
            Timer timer = new Timer();//事件的拥有者
            timer.Interval = 1000;
            Boy boy = new Boy();//事件的响应者
            Girl girl = new Girl();
            timer.Elapsed += boy.Action;//Elapsed是事件,订阅
            timer.Elapsed += girl.Action;//Elapsed是事件,订阅
            timer.Start();
            Console.ReadLine();

        }

        
    }

    class Boy
    {

        internal void Action(object sender, ElapsedEventArgs e)//事件的处理器
        {
            Console.WriteLine("Jump");
        }
    }
    class Girl
    {

        internal void Action(object sender, ElapsedEventArgs e)
        {
            Console.WriteLine("Sing");
        }
    }

 public Form1()
        {
            InitializeComponent();
            //this.button3.Click += this.ButtonClick;//挂接事件处理器
            //this.button3.Click += new EventHandler(ButtonClick);//第二种挂接事件处理器,事件基于委托的意思就是说
            this.button3.Click += delegate(object send, EventArgs e)//第三种挂接事件处理器
            {
                this.textBox1.Text = "haha";
            };
            this.textBox1.Click += (object send, EventArgs e) =>//第四种lambda挂接事件处理器
            {
                this.textBox1.Text = "hehe";
            };
        }

        private void ButtonClick(object sender, EventArgs e)
        {
            if(sender==this.button1)
            {
                this.textBox1.Text = "Hello";
            }
            if (sender == this.button2)
            {
                this.textBox1.Text = " world";
            }
            if(sender==this.button3)
            {

                this.textBox1.Text = "my:ok";
            }
        }

 

以上是关于简单Event事件的组成的主要内容,如果未能解决你的问题,请参考以下文章

Event 对象,你很了解吗?

Event 对象,你很了解吗?

Event 对象,你很了解吗?

Event 对象,你很了解吗?

Event 对象,你很了解吗?

JavaScript------事件委托(event delegation)