• 締切済み

【C#】インデックス番号(?)の取得

いつもお世話になってます。 C#に関して質問です。 VisualC#2008を使用しています。 private System.Windows.Forms.PictureBox[] kihon_pic = new PictureBox[100]; のように、ピクチャーボックスのコントロール配列を作り、あるピクチャーボックスがクリックされたときに、そのピクチャーボックスのインデックス番号(?)を取得できるようにしたいと思っています。 例えば、クリックされたピクチャーボックスはkihon_pic[4]であるとか、kihon_pic[7]であるとか、そういった具合にです。 誰か方法が分かる人がいましたら、ご回答をよろしくお願いします。

みんなの回答

  • reset_cat
  • ベストアンサー率68% (94/138)
回答No.2

たとえばこんなような感じですかね? private PictureBox[] pictArray = new PictureBox[100]; public Form1() { InitializeComponent(); PictureBox pict; int nIdx = 0; while (nIdx < pictArray.Length) { pict = new PictureBox(); pictArray[nIdx] = pict; pict.Click += new EventHandler(pict_Click); nIdx++; } } private void pict_Click(object sender, EventArgs e) { PictureBox pict; int nIdx = pictArray.Length - 1; while (nIdx >= 0) { pict = pictArray[nIdx]; if (pict == sender) { break; } nIdx--; } // nIdxが0以上なら該当インデックス // nIdxが0未満なら該当なし }

kiyo061
質問者

お礼

ご回答ありがとうございます。 参考にしながらプログラムしています。 if (pict == sender) { break; } の(pict == sender)の意味が良く分からないのですが 教えていただけないでしょうか?

回答No.1

PictureBoxのTagプロパティにインデックスを仕込んでおくのはどうでしょうか?

kiyo061
質問者

お礼

ご回答ありがとうございます。 勉強になりました。

関連するQ&A