所以我所拥有的是一个面板,它使用 DockStyle.Top 以编程方式填充自定义控件。
我需要的是当鼠标光标进入面板时面板以某种方式获得焦点,以便用户可以使用鼠标滚轮滚动面板。
我真的不想给每个控件一个处理程序,因为可能有数百个控件。
一种方法是检查鼠标位置并检查面板是否包含它,这可能需要额外的线程或鼠标钩,但也许有更好的方法?
您可以将Amen AyachMouseDetector class
发布的内容作为类似问题的答案,并在鼠标悬停时激活表单:
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
'AutoScroll
值设置为true
。
panel.AutoScroll = true;