3

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

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

现在我想为每个面板动态添加一个MouseOver和事件。MouseLeave我认为可以获取鼠标结束的面板名称,并为每个事件仅使用一种方法,并使用其面板名称(panel.Name)识别鼠标所在的面板,但我在“发件人”中一无所获。

有没有办法做到这一点?

我的代码:

//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;
4

2 回答 2

1
var panel = sender as Control;
var thePanelName = panel.Name;
于 2011-11-03T19:56:48.547 回答
0

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

所以你会有这个活动

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

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

于 2011-11-03T19:55:10.270 回答