dポイントプレゼントキャンペーン実施中!

質問の内容を書いてくださいPictureBox[,] map = new PictureBox[27, 27];
private void Form1_Load(object sender, EventArgs e)
{
for (int i = 1; i <= 25; i++)
{
for (int j = 1; j <= 25; j++)
{
map[i, j] = new PictureBox();
map[i, j].Size = new Size(tate, yoko);//用意する
map[i, j].Location = new Point(tate * i + 5 * i, yoko * j + j * 5);//ずらす
map[i, j].BackColor = Color.Black;
this.Controls.Add(map[i, j]);//設置
bom_map[i, j] = 0;
}
}
}
ピクチャボックスの場合↑のように記述すると25×25のマップができあがりました。

それぞれのピクチャボックスの上に数字を表示させたいのですがうまくできません

ちなみに、この様にソースを書いてみました

private System.Windows.Forms.Label[,] label;
private void Form1_Load(object sender, EventArgs e)
{
this.label = new System.Windows.Forms.Label[27, 27];
for (int i = 1; i <= 25; i++)
{
for (int j = 1; j <= 25; j++)
{
this.label[i, j] = new System.Windows.Forms.Label();
this.label[i, j].Size = new Size(tate, yoko);
this.label[i, j].Location = new Point(tate * i + 5 * i, yoko * j + j * 5);
this.label[i, j].Text = Convert.ToString(i * j);
this.label[i, j].BackColor = Color.BlanchedAlmond;
this.Controls.Add(this.label[i, j]);
}
}
}

ピクチャボックスと同じようにかぶせるのかな?と思い書いてみたんですが
何も表示されなくて困っています。

C#初心者なのでよろしくおねがいします。

A 回答 (1件)

ラベルをピクチャーボックスの子コントロールとして登録すればいいと思いますよ



private void Form1_Load(object sender, EventArgs e)
{
  for (int i = 1; i <= 25; i++)
  {
    for (int j = 1; j <= 25; j++)
    {
      map[i, j] = new PictureBox();
      map[i, j].Size = new Size(tate, yoko);//用意する
      map[i, j].Location = new Point(tate * i + 5 * i, yoko * j + j * 5);//ずらす
      map[i, j].BackColor = Color.Black;
      // ここでラベルを生成
      label[i,j] = new Label();
      label[i,j].Text = Convert.ToString( i + (j-1)*25);
      label[i,j].BackColor = Color.BlanchedAlmond;
      // mapのContrrolsに追加 表示位置などはlabelのLocationなどで調整
      map[i,j].Controls.Add( label[i,j] );

      this.Controls.Add(map[i, j]);//設置
      bom_map[i, j] = 0;
    }
  }
}
といった具合で …
    • good
    • 0
この回答へのお礼

ありがとうございました。

でもよくわからなくてできませんでした・・・

初心者ですみません・・・

お礼日時:2011/10/04 21:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!