如何将datagrid拆分为相同的矩形

时间:2012-03-15 21:27:28

标签: c# datagrid colors cells

我有通过所有单元格迭代的代码如何使每个4x4单元格成为不同的颜色?

这是我的代码:

int c = ran.Next(1, 5);

for (int i = 0; i < box_width; i++)
{
    for (int j = 0; j < box_height; j++)
    {
        switch (c)
        {
            case 1:
                MyClass.grid.Rows[j].Cells[i].Style.BackColor = Color.Yellow;
                break;
            case 2:
                MyClass.grid.Rows[j].Cells[i].Style.BackColor = Color.LightGray;
                break;
            case 3:
                MyClass.grid.Rows[j].Cells[i].Style.BackColor = Color.LightBlue;
                break;
            case 4:
                MyClass.grid.Rows[j].Cells[i].Style.BackColor = Color.Blue;
                break;
        }
    }

}

此代码使用随机选取的颜色填充所有网格。我希望它将它分成具有不同颜色的X x X维度。

谢谢

1 个答案:

答案 0 :(得分:1)

int c = ran.Next(1, 5);

for (int i = 0; i < box_width; i += 2)
{
    for (int j = 0; j < box_height; j += 2)
    {
        Color cellColor;

        switch (c)
        {
            case 1:
                cellColor = Color.Yellow;
                break;
            case 2:
                cellColor = Color.LightGray;
                break;
            case 3:
                cellColor = Color.LightBlue;
                break;
            case 4:
                cellColor = Color.Blue;
                break;
        }

        MyClass.grid.Rows[j].Cells[i].Style.BackColor = cellColor;
        MyClass.grid.Rows[j].Cells[i+1].Style.BackColor = cellColor;
        MyClass.grid.Rows[j+1].Cells[i].Style.BackColor = cellColor;
        MyClass.grid.Rows[j+1].Cells[i+1].Style.BackColor = cellColor;
    }
}

这假设box_width和box_height与DataGridView中的行数和单元格数相同。

如果这对您有用,请告诉我,我还没有测试过,但它似乎在我脑海中。

但是,如果单元格不是偶数4x4倍数,则会抛出异常。你确定它们总是4x4的倍数吗?如果不是,则必须添加错误检查。