c#事件处理小例子

  1. 首先声明一个委托
  2. 在Button类里声明一个事件及调用该事件的方法
  3. 在Form类中定义Button对象,以及不同的事件处理函数,再定义函数注册该事件的三种不同处理方法并触发该事件
  4. 在主函数创建Form类对象调用执行触发该事件的函数就可以看到结果

这里写图片描述

copyright vivi_and_qiao liwei
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication3
{
    public delegate void MyDelegate(object o);
    class Form
    {
        Button bu = new Button();
        public void click1(object o)
        {
            Console.ReadKey();
            Console.WriteLine("已点击Button");
        }
        public void click2(object o)
        {
            Console.ReadKey();
            Console.WriteLine("已双击Button");
        }
        public void click3(object o)
        {
            Console.ReadKey();
            Console.WriteLine("已三击Button");
        }
        public void chufa()
        {
            bu.MyEvent+=new MyDelegate(click1);
            bu.MyEvent += new MyDelegate(click2);
            bu.MyEvent+=new MyDelegate(click3);
            bu.Fireway(bu);
            bu.MyEvent -= new MyDelegate(click2);
            Console.WriteLine("删除第二个事件之后");
            bu.Fireway(bu);
        }

     }
    class Button
    {

        public event MyDelegate MyEvent;
        public void  Fireway(object o)
        {
            if (MyEvent != null)
                MyEvent(o);
        }
    }
    class Program
    {

        static void Main(string[] args)
        {
            new Form().chufa();
            Console.ReadKey();
        }
    }
}
copyright vivi_and_qiao liwei
  • 从程序源码以及运行结果图可以知道:这三个事件处理程序的触发时机是在调用事件的方法再被调用的时候,运行顺序是跟事件注册的顺序相同
  • 删除第二个事件处理程序,调用事件的方法被调用时,第二个事件的处理程序将不会被执行,其他已经注册的事件将依然按照当初被注册的顺序执行其相应的事件处理程序
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值