【发布时间】:2013-01-29 07:45:13
【问题描述】:
所以我有一个面板,它使用 DockStyle.Top 以编程方式填充自定义控件。
我需要的是让面板在鼠标光标进入面板时以某种方式获得焦点,以便用户可以使用鼠标滚轮滚动面板。
我真的不想给每个控件一个处理程序,因为可能有数百个控件。
一种方法是检查鼠标位置并检查面板是否包含它,这可能需要额外的线程或鼠标钩,但也许有更好的方法?
【问题讨论】:
-
有一个属性
Tag。您可以将一个事件处理程序绑定到所有面板并使用Tag标识它们。如果你需要一些先进的东西(我没有任何真实的例子)。无论如何,处理程序的第一个参数包含发件人object sender,您可以转换一个Panel myPanel = sender as Panel;。 -
创建单个处理函数。在
InitializeComponent函数中,为每个控件分配相同的处理程序。 -
@PLB 这不起作用,因为面板不会看到鼠标,因为它在其他控件之下。
-
@sgar91 每次更新面板时仍然需要一个“大规模”循环