c# – 面板上的矩形区域,用于捕获鼠标输入

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

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

我有一个媒体播放器(面板),在鼠标输入事件我看到一个小导航菜单(它位于面板上).我想隐藏离开面板鼠标离开的导航菜单.这可行,但不幸的是,进入导航菜单使其无形.非常感谢.

最佳答案 在鼠标离开时,只需查看当前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;
        }
    }
点赞