WinForms:当鼠标进入控件时,如何使MouseEnter启动?

WinForms:当鼠标进入控件时,如何使MouseEnter启动?,winforms,Winforms,我有一个面板,其中包含任意数量的子控件: 如果鼠标进入面板中的一个子控件: 然后,面板的MouseEnter事件不会被触发 注意:一个相关问题是,如果鼠标从面板移动到子控件之一,则面板的MouseLeave事件将被触发: 即使鼠标没有离开面板 如果鼠标进入面板上的子控件“any”,如何触发面板的MouseEnter事件 foreach (Control ctrl in panel1.Controls) ctrl.MouseEnter += panel1_MouseE

我有一个
面板
,其中包含任意数量的子控件:

如果鼠标进入
面板中的一个子控件

然后,
面板的
MouseEnter
事件不会被触发

注意:一个相关问题是,如果鼠标从面板移动到子控件之一,则面板的
MouseLeave
事件将被触发:

即使鼠标没有离开面板

如果鼠标进入面板上的子控件“any”,如何触发
面板的
MouseEnter
事件

foreach (Control ctrl in panel1.Controls)
            ctrl.MouseEnter += panel1_MouseEnter;

WPF使冒泡事件变得更容易,但在WinForms中,您必须编写管道代码。我想知道是什么让人们坚持使用WinForms。在过去的4年半里,我一直在使用WPF,从那以后我再也没有接触过WinForms。WPF很迷人。Winforms太差劲了。@Simmy WPF中的无能,无能,表单必须使用XML标记语言布局,不能使用数据绑定的要求。@IanBoyd你不能使用数据绑定是最后也是最好的笑话。我还在笑呢!!也许您可以回答如何使用泛型代码()短版本:
control.MouseEnter+=panel.MouseEnter
不编译。当我有几十个面板时,它会变得很复杂,我不知道附加到每个事件的方法的名称。你可能认为计算机可以告诉你这些事情,而不必维护这么大的一团泥。我写了“panel1_MouseEnter”,意思是默认的事件处理程序Visual Studio为你编写。不是“control.MouseEnter+=panel.MouseEnter”——同意这一点,它不会编译。一个可能的解决方案是创建一个UserControl来处理这个问题,并使用它来代替标准面板。“为其子项使用输入的面板”:-)