winform 获取按钮的单击事件

今天开发遇到了一个需求  已经获取了当前的btn对象,需要通过btn对象调用它的点击事件 故百度了下解决方案 在此记录下,以便分享。

var  btn=new Button;         
   PropertyInfo pi=(typeof(Button)).GetProperty("Events",BindingFlags.Instance|BindingFlags.NonPublic);
                EventHandlerList ehl=(EventHandlerList)pi.GetValue(btn,null);
                FieldInfo fi=(typeof(Control)).GetField("EventClick",BindingFlags.Static|BindingFlags.NonPublic);
                Delegate d=ehl[fi.GetValue(null)];

 

posted @ 2019-10-29 16:44  Hi!宋先生  阅读(1015)  评论(0)    收藏  举报