0

私はこのような画像ボックスの配列を持っています:

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

単一のオブジェクトにイベントを割り当てる方法を知っています。

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

しかし、この配列を1つのイベントハンドラーに割り当てるにはどうすればよいですか。最終的な結果は、画像ボックスごとに71個のハンドラーを作成するのではなく、71個のボックスの1つを.backColorプロパティにカーソルを合わせたときです。

4

1 に答える 1

2

Subscribe the event handlers like so:

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

And set the BackColor like so:

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

sender is the actual PictureBox that fired the event.

于 2012-11-23T19:39:54.320 に答える