c# - 如何在winforms c#中冒泡事件?
问题描述
我有一个带有父面板的 winforms 应用程序,其中包含PictureBox
和Label
.
该应用程序在父面板上有一个鼠标输入事件,以执行一些隐藏图片框并显示标签的动画。
它还有另一个鼠标离开事件来处理隐藏标签并显示图片框的动画。
发生的事情是当鼠标进入面板时,动画开始并执行它所做的事情,但是当鼠标进入标签时,它实际上离开了面板并且反向动画开始了。
我的问题是——
- 当我的鼠标进入面板的子控件时,如何防止鼠标离开事件?
解决方案
检查鼠标是否还在面板中
private void Panel1_MouseLeave(object sender, EventArgs e)
{
if (!(sender as Panel).ClientRectangle.Contains(PointToClient(Control.MousePosition)))
{
//do animation
}
}
推荐阅读
- nginx - Nginx:在不更改 URL 的情况下重写文件
- java - 需要在字段中输入值,检查结果,然后在 Selenium Java 中添加一个字符
- javascript - 如何从 React 中的单击元素获取动态道具
- rust - 如何转换 Vec
> 到 Vec - java - 使用keytool的密钥对和自签名证书之间的区别?
- c# - 通过代理使用 UnityWebRequest 的 REST 连接
- sql-server - sql将月份布尔字段保存为整数以进行按位操作
- ruby - 从 Array.product 填充的 Ruby Hash 产生意外行为
- powershell - 使用 powershell 从 ARM 模板 (.json) 中删除不需要的内容
- hybris - 将自定义后台扩展依赖项添加到另一个(外观)扩展时出现问题