Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将pictureboxes数组分配给事件_C#_Arrays_Events_Event Handling_Picturebox - Fatal编程技术网

C# 将pictureboxes数组分配给事件

C# 将pictureboxes数组分配给事件,c#,arrays,events,event-handling,picturebox,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个事件处理程序,最终结果应该是

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

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属性上时,而不是为每个picturebox创建71个处理程序。

按如下方式订阅事件处理程序:

foreach (var p in pb)
{
    p.MouseHover += new EventHandler(pictureBox1_MouseHover);
}
并将背景色设置为如下所示:

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

sender
是触发事件的实际图片盒。

谢谢,它工作得很好。现在唯一的问题是在它变红之前我有一个1秒的延迟,有什么办法可以加快这个过程吗?@timouwerker你想要多快?如果您希望它是即时的,请尝试使用
MouseEnter
MouseLeave