2016-02-01 154 views
0

所以我创建了一个pictureboxes矩阵,我想获得每个picturebox的索引,即在该矩阵中点击的picturebox的“i”和“j”。c#picturebox矩阵索引

在这里,我创建的矩阵和点击方法:

for (int i = 0; i < 3; i++) 
      for (int j = 0; j < 3; j++) 
      { 
       place[i, j] = new PictureBox(); 
       place[i, j].Parent = table; 
       place[i, j].Size = new Size(100, 100); 
       place[i, j].Location = new Point(100 * i + 20 * i, 100 * j + 20 * j); 
       place[i, j].Cursor = Cursors.Hand; 
       place[i, j].Click += new EventHandler(p_Click); 
      } 

void p_Click(object sender, EventArgs e) 
    { 
     var current = sender as PictureBox; 
    } 

如何获得“我”和“j”?

+0

您可以反向操作,并使用该位置来确定单击了哪个PB。 – SpaceSteak

+0

嗯,问题是我想要创建另一个int矩阵,我想要在被点击的图片框的位置放置一个int int第二个int矩阵。 – Xyntell

+0

您可以从@ ChrisF的答案中存储int的值。 – SpaceSteak

回答

0

你知道被点击的位置。

确保它是相对于图像的左上角,然后简单的整数运算会给您单击的单元格:

int i = location.X/100; 
int j = location.Y/100; 

我注意到你有一个偏移量(边境)所以你也必须考虑到这一点。

+0

这是一个很好的窍门。谢谢! – Xyntell

0

您可以将索引3*i+j保存在PictureBox.Tag中,然后在处理程序中检索它。