Как разбить сетку данных на одинаковые прямоугольники - PullRequest
0 голосов
/ 16 марта 2012

У меня есть код, который перебирает все ячейки, как я могу сделать так, чтобы каждая ячейка 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;
        }
    }

}

Этот код заполняет всю сетку цветом, который выбирается случайным образом. Я хочу, чтобы он разбил его на какое-то измерение Х Х Х с другим цветом.

Спасибо

1 Ответ

1 голос
/ 16 марта 2012
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.

Дайте мне знать, если это работает для вас, я не проверял это, но мне показалось, что это правильно.

Однако это вызовет исключение, если ячейки не кратны четному 4х4. Вы уверены, что они всегда будут кратны 4х4? Если нет, добавьте проверку ошибок.

...