我创建了一个设计为
的自定义用户事件
我为该设计创建了一个鼠标点击事件
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区域和标签区域的区域时,鼠标事件才有效。
我的意思是当我点击用户控件的图片框区域或标签区域时,鼠标单击不起作用。在其他区域,鼠标单击正在工作。
为什么呢?
答案 0 :(得分:1)
尝试一下:
将诸如以下的事件添加到您的控件中:
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;
}
}
}
我认为这可以解决您的问题。
答案 1 :(得分:0)
https://msdn.microsoft.com/ru-ru/library/ms171545(v=vs.110).aspx
只有前景窗口才能捕获鼠标。当一个背景窗口 尝试捕获鼠标时,窗口仅接收鼠标指针位于窗口可见部分内时发生的鼠标事件的消息。此外,即使前景窗口捕获了鼠标,用户仍然可以单击另一个窗口,将其带到前台。捕获鼠标时,快捷键不起作用。
尝试寻找透明backColor的使用。