0

所以我所拥有的是一个面板,它使用 DockStyle.Top 以编程方式填充自定义控件。

我需要的是当鼠标光标进入面板时面板以某种方式获得焦点,以便用户可以使用鼠标滚轮滚动面板。

我真的不想给每个控件一个处理程序,因为可能有数百个控件。

一种方法是检查鼠标位置并检查面板是否包含它,这可能需要额外的线程或鼠标钩,但也许有更好的方法?

4

1 回答 1

2

您可以将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;
于 2013-01-29T08:00:05.587 回答