所以我所拥有的是一个使用DockStyle.Top以编程方式填充自定义控件的面板。
当鼠标光标进入面板时,我需要的是让面板以某种方式获得焦点,以便用户可以使用鼠标滚轮滚动面板。
我真的不想给每个控件一个处理程序,因为可能有数百个控件。
一种方法是检查鼠标位置并检查面板是否包含它,这可能需要一个额外的线程或鼠标钩,但也许有更好的方法?
答案 0 :(得分:2)
您可以将Amen Ayach发布的MouseDetector class
作为answer实施为类似问题,并在鼠标悬停时激活表单:
void m_MouseMove(object sender, Point p)
{
Point pt = this.PointToClient(p);
if (this.ClientSize.Width >= pt.X &&
this.ClientSize.Height >= pt.Y &&
pt.X > 0 && pt.Y > 0)
{
this.Activate();
}
}
您还应将Panel
的{{1}}值设置为AutoScroll
。
true