3

我创建了一个自定义用户事件,其设计为

在此处输入图像描述

我为该设计创建了一个鼠标单击事件

    protected override void OnControlAdded(ControlEventArgs e)
    {
        base.OnControlAdded(e);
        e.Control.Click += new EventHandler(Control_Click);
    }

    protected override void OnControlRemoved(ControlEventArgs e)
    {
        e.Control.Click -= new EventHandler(Control_Click);
        base.OnControlRemoved(e);
    }

    void Control_Click(object sender, EventArgs e)
    {
        this.OnClick(e);
    }

仅当我单击不包括 PictureBoxes 区域和标签区域的区域时,鼠标事件才有效。

我的意思是当我单击用户控件的图片框区域或标签区域时,鼠标单击不起作用。在其他区域,鼠标单击工作。

为什么?

4

2 回答 2

2

尝试这个:

向您的控件添加一个事件,例如:

public new event MouseEventHandler MouseClick
{
    add
    {
        base.MouseClick += value;
        foreach (Control control in Controls)
        {
            control.MouseClick += value;
        }
    }
    remove
    {
        base.MouseClick -= value;
        foreach (Control control in Controls)
        {
            control.MouseClick -= value;
        }
    }
}

我认为这可以解决您的问题。

于 2018-07-03T22:30:47.297 回答
0

https://msdn.microsoft.com/ru-ru/library/ms171545(v=vs.110).aspx

只有前台窗口可以捕获鼠标。当后台窗口试图捕捉鼠标时,窗口只接收鼠标指针在窗口可见部分内时发生的鼠标事件的消息。此外,即使前台窗口已经捕获了鼠标,用户仍然可以单击另一个窗口,将其带到前台。捕获鼠标时,快捷键不起作用。

尝试寻找透明背景色的使用。

于 2017-01-25T14:35:36.530 回答