我有一个表单,我在面板中添加控件
其中一个是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 :(得分: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
指的是引发事件的实例
因此,事件处理程序接收信息,该事件的来源是什么类型的对象。