WinForm 鼠标进入移开窗体事件,因子控件导致的误触发
2015-09-11 09:53
525 查看
/// <summary> /// 重写OnControlAdded方法,为每个子控件添加MouseLeave事件 /// </summary> /// <param name="e"></param> protected override void OnControlAdded(ControlEventArgs e) { Control control = e.Control; // 获取添加的子控件 control.MouseLeave += this.SubControlLeave; // 当鼠标离开该子控件时判断是否是离开SelfDefinePanel base.OnControlAdded(e); } /// <summary> /// 重写OnMouseLeave事件,如果是离开本身的矩形区域则发生 base.OnMouseLeave(e); /// </summary> /// <param name="e"></param> protected override void OnMouseLeave(EventArgs e) { //判断鼠标是否还在本控件的矩形区域内 if (!this.RectangleToScreen(this.ClientRectangle).Contains(Control.MousePosition)) // this.RectangleToScreen(this.ClientRectangle) 映射为屏幕的矩形 { base.OnMouseLeave(e); } }
复制以上代码在需要的窗体中即可。这样,如果鼠标进入到窗体中的子控件,导致也触发了窗体的Leavel移开事件的问题就解决了。
相关文章推荐
- WingIDE注册破解方法
- 两个list取出重复数据
- 版本控制器之SVN
- nginx 高并发配置参数(转载)
- springmvc之context:property-placeholder
- 三消除游戏
- 「动态规划」利用前辈们的胜利果实走好现在的路
- virtualbox虚拟机系统网卡设置,既能上网,又能独立ip相互访问
- URL重写是实现PHP伪静态
- jQuery 获取屏幕高度、宽度
- Redis need tcl 8.5 or newer
- LeetCode Climbing Stairs
- Xcode报错:loaded the "INY-Ym-jyd-view-lgW-0n-hka" nib but didn't get a UITableView
- LeetCode Climbing Stairs
- 2014 ACM-ICPC Asia Anshan Regional Contest(Online Version)
- CentOS学习6_使用光盘安装CentOS详细教程
- Linux系统文件转码iconv
- 析构函数
- Oracle(八)PL/SQL 流程控制(多图高清~)
- [Android] 任意时刻从子线程切换到主线程的实现