2011-11-03 90 views
2

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

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

现在我想动态地将MouseOverMouseLeave事件添加到每个面板。 我认为有可能得到面板名鼠标结束,并使用每个事件只有一个方法,并确定面板鼠标结束其panelname(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; 
+0

一些示例代码在这里会有所帮助。 – rossipedia

+0

试图在这里复制它;-) – kryptex

回答

1
var panel = sender as Control; 
var thePanelName = panel.Name; 
+0

谢谢,没有意识到这么简单的事实:) – kryptex

0

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

所以你有这样的事件

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

,然后你可以把“label1_MouseHover”在任何控制鼠标悬停事件

+0

也谢谢你。这是我以前的另一个想法,但由于面板数量来自dll的锯齿数组,因此它们是在运行时创建的。 – kryptex