1
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 个图片框使用一次单击事件。此外,所有点击事件都做同样的事情,只是第一个事件的代码略有不同。纳克斯

4

2 回答 2

3

只需转到每张图片的事件属性并设置p02_Click或使用您自己的自定义名称。

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

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

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

于 2012-07-09T10:40:59.680 回答
1

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

于 2012-07-09T10:37:28.963 回答