首页 > 解决方案 > 如何在winforms c#中冒泡事件?

问题描述

我有一个带有父面板的 winforms 应用程序,其中包含PictureBoxLabel.

该应用程序在父面板上有一个鼠标输入事件,以执行一些隐藏图片框并显示标签的动画。

它还有另一个鼠标离开事件来处理隐藏标签并显示图片框的动画。

发生的事情是当鼠标进入面板时,动画开始并执行它所做的事情,但是当鼠标进入标签时,它实际上离开了面板并且反向动画开始了。

我的问题是——

标签: c#winformsmouseevent

解决方案


检查鼠标是否还在面板中

private void Panel1_MouseLeave(object sender, EventArgs e)
{
    if (!(sender as Panel).ClientRectangle.Contains(PointToClient(Control.MousePosition)))
    {
        //do animation
    }
}

推荐阅读