c#Picturebox数组选择

c#Picturebox数组选择,c#,forms,picturebox,C#,Forms,Picturebox,我已经创建了一个图片框数组和一个事件,用于单击其中一个 public void TicTac_Load(object sender, EventArgs e) { PictureBox[] PBox = new PictureBox[9]; PBox[0] = this.pictureBox1; PBox[1] = this.pictureBox2; PBox[2] = this.pict

我已经创建了一个图片框数组和一个事件,用于单击其中一个

   public void TicTac_Load(object sender, EventArgs e)
   {
            PictureBox[] PBox = new PictureBox[9];
            PBox[0] = this.pictureBox1;
            PBox[1] = this.pictureBox2;
            PBox[2] = this.pictureBox3;
            PBox[3] = this.pictureBox4;
            PBox[4] = this.pictureBox5;
            PBox[5] = this.pictureBox6;
            PBox[6] = this.pictureBox7;
            PBox[7] = this.pictureBox8;
            PBox[8] = this.pictureBox9;
        for (int i = 0; i < 9; i++)
        {
            PBox[i].Click += new System.EventHandler(PBoxes_Click);
        }
    }
    public void PBoxes_Click(object sender, EventArgs e)
    {
      PictureBox myPictureBox = sender as PictureBox;
     //if(Pbox[1].click){
     //^^ Looking for something like this 
    }

像事件一样,有多种方法可以解决这个问题

您可以将
sender
转换为正确的类型(此处
PictureBox
):


解决这个问题有多种方法

您可以将
sender
转换为正确的类型(此处
PictureBox
):


尝试将
sender
强制转换回
PictureBox
我会将数组更改为list,顺便说一句。将其移动到类级别,并将sender参数强制转换为pbox。然后你可以在列表中找到它。我遇到了一个类似的情况,在中,我只是手动将每个事件添加到一个事件中,我知道这很愚蠢。他已经为所有PBOX使用了一个公共事件,他应该这样做。试着将
sender
转换回
PictureBox
我会将数组更改为list,顺便说一句,将其移动到类级别,并将sender参数强制转换为pbox。然后你可以在列表中找到它。我遇到了一个类似的情况,在,我只是手动将每个事件添加到一个事件中,我知道这很愚蠢。他已经为所有PBOX使用了一个公共事件,这是他应该做的。不过,他可能需要找出坐标。在很多情况下,任何把它们列在列表中的人都可能会派上用场。不过,他可能需要找出坐标。在很多情况下,任何把它们列在清单上的东西都可能会派上用场。。
pictureBox1_Click(object sender, EventArgs e)
public void TicTac_Load(object sender, EventArgs e)
{
        PictureBox[] PBox = new PictureBox[9];
        PBox[0] = this.pictureBox1;
        PBox[1] = this.pictureBox2;
        PBox[2] = this.pictureBox3;
        PBox[3] = this.pictureBox4;
        PBox[4] = this.pictureBox5;
        PBox[5] = this.pictureBox6;
        PBox[6] = this.pictureBox7;
        PBox[7] = this.pictureBox8;
        PBox[8] = this.pictureBox9;
    for (int i = 0; i < 9; i++)
    {
        PBox[i].Click += new System.EventHandler(PBoxes_Click);
    }
}
public void PBoxes_Click(object sender, EventArgs e)
{
   PictureBox myPictureBox = sender as PictureBox;
}
PictureBox[] PBox = new PictureBox[9];
public void TicTac_Load(object sender, EventArgs e)
{
        PBox[0] = this.pictureBox1;
        PBox[1] = this.pictureBox2;
        PBox[2] = this.pictureBox3;
        PBox[3] = this.pictureBox4;
        PBox[4] = this.pictureBox5;
        PBox[5] = this.pictureBox6;
        PBox[6] = this.pictureBox7;
        PBox[7] = this.pictureBox8;
        PBox[8] = this.pictureBox9;
    for (int i = 0; i < 9; i++)
    {
        PBox[i].Click += new System.EventHandler(PBoxes_Click);
    }
}
public void PBoxes_Click(object sender, EventArgs e)
{
   PictureBox myPictureBox = PBox[PBox.indexOf(sender)];
}