使用按钮阵列创建按钮网格

时间:2013-03-26 01:22:56

标签: c# winforms visual-studio-2010 button multidimensional-array

我正在创建一个时间表软件来用c#开发我的技能。我使用这种数组buttons[][]创建了一个按钮网格,重要的是我使用这种样式而不是这个buttons[,],因为稍后使用XML更容易序列化。所以我的网格是根据工作人员的数量动态创建的,但是列被设置为常数7,因为一周只有7天。但是当我输入超过7名员工时,我遇到了一个问题,因为它似乎抱怨说IndeOUTOfRangeException was unhandled。我知道我的列设置为7,但我没有为最大行指定值,当我想添加第8个工作人员来创建8行时会出现此问题。

这是我必须创建网格的代码:

Button[][] buttons;
const int COLS= 7;

public Form1()
{
    InitializeComponent();
    buttons = new Button[COLS][];
    for (Int32 c = 0; c < COLS; c++)
    {
        buttons[c] = new Button[COLS];
    }
}
public void placeGrid()
{
    for (int r = 0; r < countStaff; r++)
    {
        createColumns(r);
    }
}
public void createColumns(int r)
{
    int s = r * 25; //gap
    for (int c = 0; c < COLS; c++)
    {
        buttons[c][r] = new Button();
        buttons[c][r].SetBounds(75 * c, s, 75, 25);
        buttons[c][r].Tag = cbTexts[c];
        buttons[c][r].BackColor = Color.White;
        buttons[c][r].ForeColor = Color.Indigo;
        pnlGrid.Controls.Add(buttons[c][r]);
    }

}

错误: 我不知道它为什么抱怨因为我没有改变列,而是排。 enter image description here

0 个答案:

没有答案