MouseEnter& MouseLeave对象名

时间:2011-11-03 19:49:07

标签: c# winforms mouseevent mouseenter

我想将MouseOverMouseLeave事件添加到flowLayoutPanel中动态创建的面板。

我在名为“panels”的列表中添加了所有面板,并且可以通过“panels [index]”访问它们。

现在,我想动态地向每个面板添加MouseOverMouseLeave事件。 我认为有可能获得鼠标所在的面板名称,并为每个事件使用一个方法,并使用其panelname(panel.Name)识别鼠标所在的面板,但我在“sender”中找不到任何内容。

有办法做到这一点吗?

我的代码:

//Method
private void PanelsMouseEnter(object sender, EventArgs e)
{
    var panel = sender as Control;
    foreach (Control control in this.fLpKoerper.Controls)
    {
        if (control.Name == panel.Name)
        {
            foreach (Panel panels in panelsKoerper)
            {
                if (panels.Name == panel.Name)
                    panels.BackColor = Color.DarkGray;
            }
        }
    }  
}

//Event
panelsKoerper[y].MouseEnter += PanelsMouseEnter;

2 个答案:

答案 0 :(得分:1)

var panel = sender as Control;
var thePanelName = panel.Name;

答案 1 :(得分:0)

我相信您可以为控件生成一个鼠标悬停事件,复制该事件方法名称,然后将其粘贴到另一个控件鼠标悬停事件框中,这应该可以正常工作

所以你会有这个事件

private void label1_MouseHover(object sender, EventArgs e)
{
    //Code...
}

然后你可以将'label1_MouseHover'放在任何控件鼠标悬停事件