c#如何取得事件注册的方法 或者说 如何判断事件已经被注册过? ... ..
来源:互联网 发布:head first java零基础 编辑:程序博客网 时间:2024/06/09 19:04
如何判断事件已经被注册过?
用反射取出事件绑定的委托实例,然后用GetInvocationList就可以得到所有注册的方法了
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Reflection;
namespace WindowsApplication19
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.Load += new EventHandler(Form1_Load1);
this.Load += new EventHandler(Form1_Load2);
PropertyInfo propertyInfo = (typeof (Form)).GetProperty("Events", BindingFlags.Instance | BindingFlags .NonPublic);
EventHandlerList eventHandlerList = (EventHandlerList)propertyInfo.GetValue(this , null );
FieldInfo fieldInfo = ( typeof(Form)).GetField( "EVENT_LOAD", BindingFlags.Static | BindingFlags .NonPublic);
Delegate d = eventHandlerList[fieldInfo.GetValue( null)];
if (d != null)
{
foreach ( Delegate de in d.GetInvocationList())
Console.WriteLine(de.Method.Name);
}
}
private void Form1_Load1( object sender, EventArgs e)
{
//什么也不干
}
private void Form1_Load2( object sender, EventArgs e)
{
//什么也不干
}
}
}
0 0
- c#如何取得事件注册的方法 或者说 如何判断事件已经被注册过? ... ..
- c#如何取得事件注册的方法
- c#如何取得事件注册的方法 收藏
- C# 控件如何获取事件已经注册的方法
- c#判断事件是否已被注册
- js中如何注册事件
- C# 在类中如何注册事件与取消事件注册?
- 再说说prototype.js的事件注册
- 如何判断DLL是否注册过?
- 如何判断通过WSAAsyncSelect 注册的事件中,发生的是那个
- 一个事半功倍的c#方法 动态注册按钮事件
- 如何给Body动态注册事件
- 如何在MVVM里面注册按钮事件?
- MVVM如何给BUTTON按钮注册事件
- 如何判断注册用户是否已经存在(membership验证)
- 如何判断注册用户名,Email在数据库中已经存在
- 去除注册的事件 c# winform
- 模仿jquery的注册事件方法
- 理解 boost::shared_ptr 中的引用计数是如何工作的
- 鼠标事件
- Java线程生命周期及其使用,sleep与interrupt的使用,wait与notify
- C++ (STL BOOST) 智能指针的一些解析
- eclipse 向下复制无效 ctrl+alt+down
- c#如何取得事件注册的方法 或者说 如何判断事件已经被注册过? ... ..
- 面试总结之Javascript篇(二)
- 彻底解决mysql中文乱码的办法
- 华为OJ 初级:寻找等差数列
- 鼠标事件2
- 求 架构设计 的视屏和 设计模式的视频 性能优化 的视频 系统源码分析 的视频 android
- [Cloud Computing]Mechanisms: Host Based Security System
- IOS越狱学习总结
- Qt学习之路(46): 自定义model之二