将一组图片框分配给一个事件

时间:2012-11-23 18:41:53

标签: c# arrays events event-handling picturebox

我有一系列像这样的图片框:

PictureBox[] pb = new PictureBox[71]
{
pictureBox1,pictureBox2,pictureBox3,...etc
};

我知道如何将事件分配给单个对象

private void pictureBox1_MouseHover(object sender, EventArgs e)
{
    pictureBox1.BackColor = Color.Red;
}

但如何将此数组分配给1个事件处理程序,最终结果应该是当我将71个框中的1个悬停在.backColor属性时,而不是为每个图片框创建71个处理程序。

1 个答案:

答案 0 :(得分:2)

订阅事件处理程序如下:

foreach (var p in pb)
{
    p.MouseHover += new EventHandler(pictureBox1_MouseHover);
}

并设置BackColor,如此:

private void pictureBox1_MouseHover(object sender, EventArgs e)
{
    ((PictureBox)sender).BackColor = Color.Red;
}

sender是触发事件的实际PictureBox。