0

我有遍历所有单元格的代码如何使每个 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 维度。

谢谢

4

1 回答 1

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 的倍数吗?如果没有,您必须添加错误检查。

于 2012-03-15T22:00:13.750 回答