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)];
}