MouseEnter и MouseLeave имя объекта

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

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

Теперь я хочу динамически добавлять события 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;

person kryptex    schedule 03.11.2011    source источник
comment
Некоторый пример кода был бы полезен здесь.   -  person rossipedia    schedule 03.11.2011


Ответы (1)


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

Таким образом, вы бы это событие

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

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

person Mungoid    schedule 03.11.2011
comment
и тебе спасибо. Это еще одна идея, которая у меня была раньше, но поскольку количество панелей исходит из зубчатого массива из dll, они создаются во время выполнения. - person kryptex; 04.11.2011