【问题标题】:label array in an panel面板中的标签数组
【发布时间】:2013-03-06 22:27:28
【问题描述】:

我需要为游戏制作一个 6x6 的网格,但似乎所有标签都不起作用,

可能有点小。

Label[][] map = new Label[6][];
for (int i = 0;i < columns;i++)
{
    map[i] = new Label[6];
    for (int j = 0; j < columns; j++)
    {
        map[i][j] = new Label();
        map[i][j].AutoSize = true;
        map[i][j].BackColor = Color.Black;
        map[i][j].Location = new Point(i * spacing, j * spacing);
        map[i][j].Name = "map" + i.ToString() + "," + j.ToString();
        map[i][j].Width = spacing;
        map[i][j].Height = spacing;
        map[i][j].TabIndex = 0;
        map[i][j].Text = "test" + i.ToString() + j.ToString();
        panel1.Controls.Add(map[i][j]);
    }
    this.Controls.AddRange(map[i]);
}
MessageBox.Show("greatsuscces");
return;

【问题讨论】:

  • “似乎没有 (...) 似乎有效”是什么意思?会发生什么,您期待什么?
  • 定义none [...] seem to work。您是否收到错误消息、意外行为或其他情况?另外,columns 是在哪里定义和设置的?
  • 设置可见性怎么样?什么不工作?你在哪里做这个?什么技术?
  • 所以我想做的是,我得到一个 6x6/9x9/12x12 网格,用于名为战略游戏的游戏,每个标签都将包含一个文本和一个将设置的标签,我看到的很简单没有。也许 panel1 不适用于此?它在 C# 中
  • @Kapein:你看到panel1了吗? (例如,当您将其 BackColor 设置为易于识别的内容时)

标签: c# arrays 2d multidimensional-array


【解决方案1】:

确保您的Panel 足够大,首先,可能是 500x500。其次,您需要将所有标签添加到Panel 而不是this.Controls

       int spacing = 75;
        int columns = 6;

        //Use your variable above to create the array
        Label[][] map = new Label[columns][];

        for (int i = 0; i < columns; i++) {
            //Create a new sub array
            map[i] = new Label[columns];
            for (int j = 0; j < columns; j++) {
                map[i][j] = new Label();
                map[i][j].AutoSize = true;
                map[i][j].BackColor = Color.Black;
                map[i][j].Location = new Point(i * spacing, j * spacing);
                map[i][j].Name = "map" + i.ToString() + "," + j.ToString();
                map[i][j].Width = spacing;
                map[i][j].Height = spacing;
                map[i][j].TabIndex = 0;
                map[i][j].Text = "test" + i.ToString() + j.ToString();
            }
            //Add the range to the panel
            panel1.Controls.AddRange(map[i]);
        }

【讨论】:

  • 非常感谢先生!我没有注意到 this.controls!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-10
  • 1970-01-01
  • 2015-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多