首页 新闻 会员 周边

当触发MouseLeave触发时如何判断是离开了该控件的区域,还是鼠标进入了子控件的区域

0
[已解决问题] 解决于 2015-06-04 13:54

一个容器(如panel)控件中有很多子控件,当鼠标进入panel触发mouseEnter,但是当鼠标进入其子控件区域或者是移出panel区域,都会触发mouseLeave事件,如何区分这两种情况?

CX_的主页 CX_ | 初学一级 | 园豆:75
提问于:2015-04-29 11:03
< >
分享
最佳答案
0

There is no simple way to do it.

One way could be to check all the controls inside the Form and if mouse is not over any of them this means mouse is outside the Form

Another way could be to check inside mouse leave event whether mouse is inside the window boundary or not

奖励园豆:5
爱编程的大叔 | 高人七级 |园豆:30839 | 2015-04-29 11:11

Another way could be to check inside mouse leave event whether mouse is inside the window boundary or not 

我想到的也是这个方法,但是不知道怎么搞?

在panel的mouseleave中去判断此时鼠标是否在panel 的区域内?

CX_ | 园豆:75 (初学一级) | 2015-04-29 11:28

@爱编程的大叔: Thanks

CX_ | 园豆:75 (初学一级) | 2015-04-29 11:43
其他回答(1)
0

有必要判断这个吗?为什么总是要搞非常奇怪的解决方案?

 

要判断也很简单,检查鼠标点是否在 panel 客户区内。

Launcher | 园豆:45045 (高人七级) | 2015-04-29 11:11

因为只要鼠标还在控件内(包括子控件内),需要在panel上显示一些效果,当鼠标移除了panel的范围,这个效果就消失,

如何 检查鼠标点是否在 panel 客户区内。?

在Mouseleave中去处理?

支持(0) 反对(0) CX_ | 园豆:75 (初学一级) | 2015-04-29 11:26

@CX_: 只是移动鼠标吗?

支持(0) 反对(0) Launcher | 园豆:45045 (高人七级) | 2015-04-29 11:39

@Launcher: 是的,鼠标在panel范围内显示边框,不在panel内,不显示边框

支持(0) 反对(0) CX_ | 园豆:75 (初学一级) | 2015-04-29 11:44

@CX_: 鼠标在按下状态时在 panel 范围内,显示边框吗?

支持(0) 反对(0) Launcher | 园豆:45045 (高人七级) | 2015-04-29 12:24

@Launcher: 一直在忙,问题已解决

支持(0) 反对(0) CX_ | 园豆:75 (初学一级) | 2015-06-04 13:53
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册