C# 清除事件绑定的函数

原文地址:点击打开链接

  #region 清除事件绑定的函数
        /// <summary>
        /// 清除事件绑定的函数
        /// </summary>
        /// <param name="objectHasEvents">拥有事件的实例</param>
        /// <param name="eventName">事件名称</param>
        public static void ClearAllEvents(object objectHasEvents, string eventName)
        {
            if (objectHasEvents == null)
            {
                return;
            }
            try
            {
                EventInfo[] events = objectHasEvents.GetType().GetEvents(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
                if (events == null || events.Length < 1)
                {
                    return;
                }
                for (int i = 0; i < events.Length; i++)
                {
                    EventInfo ei = events[i];
                    if (ei.Name == eventName)
                    {
                        FieldInfo fi = ei.DeclaringType.GetField(eventName, BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
                        if (fi != null)
                        {
                            fi.SetValue(objectHasEvents, null);
                        }
                        break;
                    }
                }
            }
            catch
            {
            }
        }
        #endregion
时间: 2024-10-30 15:48:19

C# 清除事件绑定的函数的相关文章

深入理解jQuery事件绑定_jquery

html: <a href="#" onclick="addBtn()">addBtn</a> <div id="mDiv"> <button class="cBtn" onclick="alert(11111)">button1</button> <button class="cBtn">button2</b

jQuery事件绑定用法详解(附bind和live的区别)_jquery

本文实例分析了jQuery事件绑定用法.分享给大家供大家参考,具体如下: html: <a href="#" onclick="addBtn()">addBtn</a> <div id="mDiv"> <button class="cBtn" onclick="alert(11111)">button1</button> <button cl

jquery事件绑定方式.bind() .live() .delegate()用法介绍

基础 首先,图形化的HTML文档能帮助我们更好的理解.一个简单的HTML页面看起来应该像这样 事件冒泡(也称作事件传递)(Event bubbling aka event propagation) 点击一个链接,触发绑定在链接元素上的 click 事件,进而触发绑定到这个元素的click事件的函数.  代码如下 复制代码 $('a').bind('click', function() { alert("That tickles!") }); 所以一次点击会触发一个alert. 然后,这

JQuery入门——用bind方法绑定事件处理函数应用介绍_jquery

1.bind()功能是为每个选择元素的事件绑定处理函数,其语法如下:bind(type, [data], fn) 其中type为一个或多个类型的字符串,如click或change,也可以自定义:可以被type调用的类型包括blur.focus.load.resize.scroll.unload.click.dbclick.mousedown等事件.参数data是作为event.data属性值传递对象的额外数据对象.参数fn是绑定到每个选择元素的事件中的处理函数. 2.示例代码: 复制代码 代码如

javascript-js事件绑定的时候,绑定的函数是实例吗

问题描述 js事件绑定的时候,绑定的函数是实例吗 请问js事件绑定的时候,绑定的函数是实例吗,我感觉是的,因为每个绑定的function中的变量都不一样 解决方案 js中一切东西都是对象,函数也是 var obj = function(){} 你使用这个obj和使用一个对象思想是一致的. 既然是对象那当然是实例 另外说点题外话 js中一切都是对象,函数是一等公民,注意没有类啊 比如我们的Object,Array,Number,等他们都是函数,并不是我们类比Java等其他语言中的类一样 var o

javascript-用自定义的传统事件绑定函数代替attachEvent的一些问题

问题描述 用自定义的传统事件绑定函数代替attachEvent的一些问题 我看了一个教程,上面写了一个用自定义的传统事件绑定函数来代替IE8及以上的老IE的attachEvent方法,主讲老师写了一点看不懂,哪位能解释一下,代码如下:HTML代码: <body> <input type=""button"" value=""按钮"" id=""button"" />

JavaScript实现跨浏览器的添加及删除事件绑定函数实例_javascript技巧

本文实例讲述了JavaScript实现跨浏览器的添加及删除事件绑定函数.分享给大家供大家参考.具体如下: IE 的事件绑定函数是 attachEvent:而 Firefox, Safari 是 addEventListener:Opera 则两种都支持.使用jQuery就可以使用简单的bind(),或者$().click()之类的函数解决,而如果不使用JavaScript框架的时候,大家可是使用下面的封装bind()函数. 添加事件绑定 bind() /*********************

JavaScript绑定事件监听函数的通用方法_javascript技巧

事件绑定的3中常用方法:传统绑定.W3C绑定方法.IE绑定方法.但是,在实际开发中对于我们来讲重要的是需要一个通用的.跨浏览器的绑定方法.如果我们在互联网上搜索一下会发现许多方法,以下是比较知名的几种方法: 在开始学期下面几种方法之前,应当讨论一下,一个好的addEvent()方法应当达到哪些要求: a.支持同一元素的同一事件句柄可以绑定多个监听函数: b.如果在同一元素的同一事件句柄上多次注册同一函数,那么第一次注册后的所有注册都被忽略: c.函数体内的this指向的应当是正在处理事件的节点(

Ajax实战:绑定事件处理函数代码

JavaScript文件(代码清单4-3)采用编程方式将事件绑定到键上. 代码清单4-3 musical.js window.onload调用了assignKeys()函数(可以在这个文件中直接定义window. onload,但是这限制了它的可移植性).通过唯一的ID来发现keyboard元素,然 后使用getElementsByTagName()遍历访问其内部所有的DIV元素.这需要知道一 些关于页面结构的知识,但是它允许页面设计师自由地在页面中将键盘DIV以希 望的方式任意移动. 表示键的