2011-11-03 57 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