MouseEnter & MouseLeave имя объекта - PullRequest
3 голосов
/ 03 ноября 2011

Я хочу добавить MouseOver и MouseLeave события к динамически создаваемым панелям в flowLayoutPanel.

Я добавил все панели в список с именем «панели», и они доступны с помощью «панелей [индекс]".

Теперь я хочу динамически добавить событие MouseOver и MouseLeave к каждой панели.Я думал, что можно было бы получить имя панели, над которой находится Мышь, и использовать только один метод для каждого события и идентифицировать панель, над которой мышь находится, с помощью ее имени панели (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 ]

1 голос
/ 03 ноября 2011
var panel = sender as Control;
var thePanelName = panel.Name;
0 голосов
/ 03 ноября 2011

Я полагаю, что вы можете сгенерировать одно событие наведения курсора для элемента управления, скопировать имя метода этого события, а затем вставить его в окно события наведения мыши на другом элементе управления, и это должно сработать

Так что у вас будет это событие

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

и затем вы можете поместить 'label1_MouseHover' в любое событие управления наведением мыши

...