2016-05-01 11 views
-2

У меня есть форма, что я добавлять элементы управления в панелиC# клонировал MouseHover/MouseLeave относится к оригинальному контролю и не току

один из них является PictureBox трюмов события MouseHover/MouseLeave как это

void PropAction_pBoxMouseLeave(object sender, EventArgs e) 
{ 
    PropAction_pBox.ImageLocation = @"PicButtons\PropertiesBtn2.png"; 
} 
void PropAction_pBoxMouseHover(object sender, EventArgs e) 
{ 
    PropAction_pBox.ImageLocation = @"PicButtons\PropertiesBtn2White.png"; 
} 

В кнопке добавления у меня есть этот код

создать в новый кнопка на основе на newPropAction (оригинал) и добавить его в списке *

"newPropAction_pBox представляет новый PictureBox & PropAction_pBox представляет собой оригинальный PictureBox" *

 PictureBox newPropAction_pBox = new PictureBox(); 
     newPropAction_pBox.Image = PropAction_pBox.Image; 
     newPropAction_pBox.Click += PropAction_pBoxClick; 
     newPropAction_pBox.MouseHover += PropAction_pBoxMouseHover; 
     newPropAction_pBox.MouseLeave += PropAction_pBoxMouseLeave; 
     this.Controls.Add(newPropAction_pBox);// add to controls 
     ActionPictures.Add(newPropAction_pBox); //Add to btn to list  

Но конечный эффект это за (фото ниже)

мышь не на PictureBox еще: http://prnt.sc/axt8b9

мыши на новом PictureBox: http://prnt.sc/axt9ul

ответ

0

Изменение код следующим образом

void PropAction_pBoxMouseLeave(object sender, EventArgs e) 
{ 
    var pictureBox = (PictureBox)sender; 
    pictureBox.ImageLocation = @"PicButtons\PropertiesBtn2.png"; 
} 

void PropAction_pBoxMouseHover(object sender, EventArgs e) 
{ 
    var pictureBox = (PictureBox)sender; 
    pictureBox.ImageLocation = @"PicButtons\PropertiesBtn2White.png"; 
} 

Объект sender является источником события. Параметр sender относится к экземпляру, который вызывает событие.
Таким образом, обработчик события получает информацию, какой объект является источником этого события.

+0

WOW это сработало, но, пожалуйста, объясните мне, что имя оригинала 'PictureBox является PropAction_pBox', как работает' var pictureBox.ImageLocation', как 'PropAction_pBox.ImageLocation' – ehem

+0

@ehem - См. Обновление. Так сложно писать на английском. Так легко писать код. –

+0

, поэтому отправитель '(PictureBox)' возвращает «отправителю объекта» простым словам. В любом случае я понял, как это работает, хорошо провести день – ehem