C# 移除事件

去除事件
public static class EventExtension
{
    public static void RemoveEvents<T>(this Control target,string Event)
    {
            FieldInfo f1 = typeof(Control).GetField(Event,BindingFlags.Static | BindingFlags.NonPublic);
            object obj = f1.GetValue(target.CastTo<T>());
            PropertyInfo pi =target.CastTo<T>().GetType().GetProperty("Events",
                BindingFlags.NonPublic | BindingFlags.Instance);
            EventHandlerList list = (EventHandlerList)pi.GetValue(target.CastTo<T>(), null);
            list.RemoveHandler(obj, list[obj]);
    }
}
使用方法:
Button button=new Button();
button.RemoveEvents<Button>("EventClick");
URL:http://stackoverflow.com/questions/91778/how-to-remove-all-event-handlers-from-a-control

转载于:https://www.cnblogs.com/z2002m/archive/2011/04/26/2029457.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值