博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
反射方法获取事件的委托链上的函数
阅读量:6424 次
发布时间:2019-06-23

本文共 1802 字,大约阅读时间需要 6 分钟。

 

 

 

using System;using System.Collections.Generic;using System.ComponentModel;using System.Linq;using System.Reflection;using System.Text;using System.Threading.Tasks;namespace TestDev{    class Program    {        static void Main(string[] args)        {                    System.Windows.Forms.Button btn = new System.Windows.Forms.Button();            btn.Click += new EventHandler(btn_Click);            btn.Click += new EventHandler(btn_Click2);            btn.Click += new EventHandler(btn_Click3);            btn.MouseMove += btn_MouseMove;            btn.MouseMove += btn_MouseMove2;                        PropertyInfo pi = btn.GetType().GetProperty("Events", BindingFlags.Instance | BindingFlags.NonPublic);            EventHandlerList ehl = (EventHandlerList)pi.GetValue(btn, null);//EventClick            FieldInfo fieldInfo = (typeof(System.Windows.Forms.Control)).GetField("EventMouseMove", BindingFlags.Static | BindingFlags.NonPublic);            Delegate d = ehl[fieldInfo.GetValue(null)];            foreach (Delegate del in d.GetInvocationList())                Console.WriteLine(del.Method.Name);                   }        static void btn_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)        {            throw new NotImplementedException();        }        static void btn_MouseMove2(object sender, System.Windows.Forms.MouseEventArgs e)        {            throw new NotImplementedException();        }        static void btn_Click(object sender, EventArgs e)        {            Console.WriteLine("Click1");        }         static void btn_Click2(object sender, EventArgs e)        {            Console.WriteLine("Click2");        }         static void btn_Click3(object sender, EventArgs e)        {            Console.WriteLine("Click3");        }            }}

 

转载地址:http://ulrra.baihongyu.com/

你可能感兴趣的文章
JavaScript中call,apply,bind方法的总结
查看>>
高中数学与初中数学的接轨点
查看>>
python 安装第三方模块
查看>>
Whitelabel Error Page 专题
查看>>
Spring Data Redis—Pub/Sub(附Web项目源码)
查看>>
RSD和wlwmanifest是什么
查看>>
Linkedin工程师是如何优化他们的Java代码的(转)
查看>>
winfrom 如何保存datagridview中的某一行数据
查看>>
面向领域驱动的应用开发框架Apworks 2.0发布
查看>>
开发自己的Web服务处理程序(以支持Ajax框架异步调用Web服务方法)
查看>>
ref和out
查看>>
黑客教父详解账号泄露全过程:1亿用户已泄露
查看>>
程序员必须软件
查看>>
Canvas里的globalCompositeOperation
查看>>
解决Unable to locate theme engine in module_path: "pixmap"
查看>>
贝叶斯文本分类c#版
查看>>
Centos安装KDE或GNOME
查看>>
Eclipse & IDEA 中常用的快捷键
查看>>
javascript ---IPhone滑动解锁
查看>>
table固定行和表头
查看>>