[转] WinForm实现移除控件某个事件的方法

简介:

原文 WinForm实现移除控件某个事件的方法

本文实例讲述了WinForm实现移除控件某个事件的方法,供大家参考借鉴一下。具体功能代码如下:

主要功能部分代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/// <summary>
/// 移除控件某个事件
/// </summary>
/// <param name="control">控件</param>
/// <param name="eventName">需要移除的控件名称eg:EventClick</param>
public  static  void  RemoveControlEvent( this  Control control,  string  eventName)
{
  FieldInfo _fl =  typeof (Control).GetField(eventName, BindingFlags.Static | BindingFlags.NonPublic);
   if  (_fl !=  null )
  {
     object  _obj = _fl.GetValue(control);
    PropertyInfo _pi = control.GetType().GetProperty( "Events" , BindingFlags.NonPublic | BindingFlags.Instance);
    EventHandlerList _eventlist = (EventHandlerList)_pi.GetValue(control,  null );
   if  (_obj !=  null  && _eventlist !=  null )
    _eventlist.RemoveHandler(_obj, _eventlist[_obj]);
  }
}

 使用代码:

1
2
3
4
5
6
7
8
private  void  WinRemoveControlEventTest_Load( object  sender, EventArgs e)
{
  button1.RemoveControlEvent( "EventClick" );
}
private  void  button1_Click( object  sender, EventArgs e)
{
  MessageBox.Show( "button1_Click" );
}

 

没有整理与归纳的知识,一文不值!高度概括与梳理的知识,才是自己真正的知识与技能。 永远不要让自己的自由、好奇、充满创造力的想法被现实的框架所束缚,让创造力自由成长吧! 多花时间,关心他(她)人,正如别人所关心你的。理想的腾飞与实现,没有别人的支持与帮助,是万万不能的。



    本文转自wenglabs博客园博客,原文链接:http://www.cnblogs.com/arxive/p/5885010.html ,如需转载请自行联系原作者


相关文章
|
关系型数据库 MySQL C#
C# winform 一个窗体需要调用自定义用户控件的控件名称
给用户控件ucQRCode增加属性: //二维码图片 private PictureBox _pictureBoxFSHLQrCode; public PictureBox PictureBoxFSHLQrCode {   get { return _pictureBoxFSHLQrCode; }   set { this.pictureBoxFSHLQrCode = value; } } 在Form1窗体直接调用即可: ucQRCode uQRCode=new ucQRCode(); ucQRCode.PictureBoxFSHLQrCode.属性= 要复制或传给用户控件上的控件的值
70 0
PyQt5 技术篇-如何彻底删除控件?布局移除控件方法。
PyQt5 技术篇-如何彻底删除控件?布局移除控件方法。
920 0
PyQt5 技术篇-如何彻底删除控件?布局移除控件方法。
|
消息中间件 安全 C#
WinForm-跨线程更新UI控件常用方法
WinForm-跨线程更新UI控件常用方法
701 0
WinForm-跨线程更新UI控件常用方法
|
JavaScript C#
C#(WPF)去除事件中注册的事件处理方法!
在WPF中,移除一个事件中已经注册的处理方法,看似简单,实际还是很痛苦的一件事情。因为C#的灵活性,定义事件的方法也是多种多样。我自己定义了一个事件: public event EventHandler TestEvent; 当我想注销这个事件上注册的所有方法的时候,我可以按如下的方法进行 Delegate[] dels = TestEvent.
4013 0
|
C# 前端开发
wpf中的datagrid绑定操作按钮是否显示或者隐藏
如图,需要在wpf中的datagrid的操作那列有个确认按钮,然后在某些条件下确认按钮可见,某些情况下不可见的,放在mvc里直接在cshtml页面中if..else就行了。 但是在wpf里不行。。网上搜索了好久才找到解决方法,原来只是binding那个visiable属性就行了,
6895 0
|
C# Windows
WPF中的事件列表
原文:WPF中的事件列表 以下是WPF中的常见事件汇总表(按字母排序),翻译不见得准确,但希望对你有用。 事件 描述 Annotation.AnchorChanged 新增、移除或修改 Anchor 元素时发生。
1131 0
|
C#
WPF Label控件在数据绑定Content属性变化触发TargetUpdated事件简单实现类似TextChanged 事件效果
原文:WPF Label控件在数据绑定Content属性变化触发TargetUpdated事件简单实现类似TextChanged 事件效果   本以为Label也有TextChanged 事件,但在使用的时候却没找到,网友说Label的Content属性改变肯定是使用赋值操作,赋值的时候就可以对其进行相应的操作所以不需TextChanged 事件。
2056 0
错误:“ResourceDictionary”根元素需要 x:Class 特性来支持 XAML 文件中的事件处理程序。请移除 MouseLeftButtonDown 事件的事件处理程序.
原文:错误:“ResourceDictionary”根元素需要 x:Class 特性来支持 XAML 文件中的事件处理程序。请移除 MouseLeftButtonDown 事件的事件处理程序. 转载于(https://social.
2351 0