0

n 個の画像ボックスがあります。次のイベントを動的に実行する必要があります。

private void pictureBoxMouseHover(object sender, EventArgs e) 
{
    if (sender is PictureBox)
    {
        ((PictureBox)sender).BorderStyle = BorderStyle.FixedSingle;
    }
}

private void pictureBoxMouseLeave(object sender, EventArgs e)
{
    if (sender is PictureBox)
    {
        ((PictureBox)sender).BorderStyle = BorderStyle.None;
    }
}

private void MainMaster_Load(object sender, EventArgs e)
{
    foreach (var control in Controls)
    {
        if (sender is PictureBox)
        {
            PictureBox pb=new PictureBox();
            pb.Name = sender.ToString();
            pb.MouseHover += new System.EventHandler(this.pictureBoxMouseHover);
            pb.MouseLeave += new System.EventHandler(this.pictureBoxMouseHover);
        }
    }
}

これのどこが悪いのかわかりませんでした。私を助けてください。

4

2 に答える 2

1

私は間違いがここにあると思います:

foreach (var control in Controls)
{
    if (sender is PictureBox)

この場合の送信者はウィンドウになります。あなたは支配を意図していたと思います。

foreach (var control in Controls)
{
    if (control is PictureBox)
于 2012-05-14T07:47:07.650 に答える