繁体   English   中英

如何处理用户控件中的鼠标事件,而忽略其控件中的事件

[英]How to handle mouse events from user control while ignoring those of its controls

我的用户控件的屏幕

我有一个包含一些控件的用户控件(黑色矩形)。 当鼠标悬停在用户控件上时,我想在红色矩形中显示两个图像。

目前,我已经实现了用户控件中的mouseEnter(显示图像)和mouseLeave(隐藏图像)事件。

问题在于,当鼠标悬停在另一个控件(例如标签)上时,将触发用户控件中的mouseLeave事件,并且图像消失。

我可以为所有控件实现鼠标进入/鼠标离开事件,但是这似乎浪费时间,大量重复数据删除和内存使用不佳。 我还考虑了其​​他控件的禁用事件,但不确定如何做,这似乎比其他任何事情都更容易破解。 Il尝试禁用控件,但颜色改变,再次变脏。

如果鼠标悬停在其控件之一上,也许可以防止触发用户控件mouseLeave事件?

我敢肯定有正确的方法来做到这一点,但无法弄清楚。

如果有人想到一个更好的标题,我会更改它。

谢谢您的帮助,

问候

非常感谢你们俩。 您为我指出了正确的方向。

我最终通过执行以下操作简单地将ControlUser.MouseEnter事件注册到所有控件:

foreach (Control control in Controls)
{
     control.MouseEnter += new EventHandler(this.MyUserControl_MouseEnter);
}

简单高效,这是完美的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM