【问题标题】:How to bubble event in winforms c#?如何在winforms c#中冒泡事件?
【发布时间】:2019-06-29 23:32:29
【问题描述】:

我有一个父面板包含PictureBoxLabel 的winforms 应用程序。

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

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

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

我的问题是——

  • 当我的鼠标进入面板的子控件时,如何防止鼠标离开事件?

【问题讨论】:

  • 如果鼠标仍在面板范围内,请检查鼠标离开事件
  • 欢迎来到 SO。希望你不介意,因为我已经整理了你的问题。如果您为此类问题显示一些代码,通常会更好。 minimal reproducible example。祝你好运!
  • 感谢@MickyD 这样做。我的问题现在更具可读性,甚至对我自己来说也更加清晰。

标签: c# winforms mouseevent


【解决方案1】:

检查鼠标是否还在面板中

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多