c# - 面板上的矩形区域以捕获鼠标输入

标签 c# draw mouseenter mouseleave

c# winforms 在这里。我需要在面板上绘制一个不可见的矩形区域并捕捉他的鼠标进入/离开事件。

我的情况(至于你可能有的其他一些建议):

我有一个媒体播放器(面板),在鼠标进入事件时我使一个小导航菜单可见(它位于面板上方)。我想在鼠标离开面板时隐藏导航菜单。这有效但不幸的是也进入导航菜单使其不可见。非常感谢。

最佳答案

在鼠标离开时,只需查看当前 Cursor.Position 是否包含在您的矩形中。例如,使用面板和标签:

    public Form1()
    {
        InitializeComponent();
        panel1.MouseEnter += panel1_MouseEnter;
        panel1.MouseLeave += common_MouseLeave;
        label1.MouseLeave += common_MouseLeave;
    }

    private void panel1_MouseEnter(object sender, EventArgs e)
    {
        label1.Visible = true;
    }

    private void common_MouseLeave(object sender, EventArgs e)
    {
        Rectangle rc = panel1.RectangleToScreen(panel1.ClientRectangle);
        if (!rc.Contains(Cursor.Position))
        {
            label1.Visible = false;
        }
    }

关于c# - 面板上的矩形区域以捕获鼠标输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31528771/

相关文章:

iOS Swift 描边宽度

vb.net - Visual Studio 自定义控件错误的 AddHandler

javascript - jQuery mouseenter 和 mouseleave fade 防止延迟重复

javascript - 当我有多个具有相同类的 div 时,如何仅在 div 上执行操作

c# - 在泛型类 <T,U> 的方法中比较 T 的两个变量(从 C++ 到 C# 的代码移植)

c# - 报表查看器文本框可见性表达式

c# - 毫无异常(exception)地卡在 Socket.Receive 上

c# - 更新 ToolStripProgressBar 和 ToolStripStatusLabel 以及一个 Action

image - Canvas globalAlpha 不影响图像?

android - 如何在运行时在自定义 View 中画线?