我有通过所有单元格迭代的代码如何使每个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维度。
谢谢
答案 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的倍数吗?如果不是,则必须添加错误检查。