如何将图片框单击事件合并为一个?

时间:2012-07-09 10:33:14

标签: c# picturebox mouseclick-event

private void p01_Click(object sender, EventArgs e)
    {
        if (p01.Image == pmiss.Image)
        {
            score++;
            makeMoleVisable(1, phit);
        }
        else
        {
            score--;
            molesmissed++;
        }
    }
    private void p02_Click(object sender, EventArgs e)
    {
        if (p02.Visible)
        {
            if (p02.Image == pmiss.Image)
            {
                score++;
                p02.Image = phit.Image;
            }
            else
            {
                score--;
                molesmissed++;
            }
        }
    }

您好我有36个这些图片框点击事件。我想对所有36个图片框只使用一次点击事件。此外,所有点击事件都做同样的事情,第一个上的代码略有不同。 Thnaks

2 个答案:

答案 0 :(得分:3)

只需转到每张图片的events属性,然后设置为p02_Click或使用您自己的自定义名称。

如果您在一个面板中有所有图片框,则可以尝试:

foreach (Control p in mypanel.ControlCollection)
{
    p = p as PictureBox;
    p.Click += (p01_Click);
}

您还可以通过为Tag设置p01属性并在代码中检查该属性来测试它是否为pictureBox1。

答案 1 :(得分:1)

您可以为每个组图片框重复使用eventhandler方法。方法的sender参数将包含触发事件的对象。