こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

ラベルをピクチャボックスの上に表示させたい

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#初心者なのでよろしくおねがいします。
}

投稿日時 - 2011-10-03 23:31:43

QNo.7050300

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

hisukoha117117さん

以下のように書けばできると思います。
private void Form2_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++)
{
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]);//設置

this.label[i, j] = new System.Windows.Forms.Label();
this.label[i, j].Size = new Size(tate, yoko);

//配置位置は0,0に
this.label[i, j].Location = new Point(0, 0);
//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.Transparent;
this.label[i, j].ForeColor = Color.White;

//ラベルはフォームにではなく、ピクチャボックスに追加します。
map[i, j].Controls.Add(label[i, j]);
//this.Controls.Add(this.label[i, j]);

//bom_map[i, j] = 0;
}
}
}

これでちゃんと表示できると思います。

投稿日時 - 2011-10-11 16:01:12

あなたにオススメの質問