Цвет фона ячейки DataGridView не задан - PullRequest
0 голосов
/ 05 декабря 2010

У меня есть DataGridView с четырьмя столбцами.Первые три возвращаются в виде массива: красный, зеленый и синий.Все значения находятся в диапазоне от 0 до 255. Я программно добавил столбец под названием «Цвет».Мне бы хотелось, чтобы задний цвет этого столбца отражал содержание RGB.Я могу видеть данные rgb правильно, и с помощью отладчика задний цвет корректно устанавливается в отношении свойства.Я также могу установить фоновый цвет столбца, и он отображается правильно.Я попытался установить фоновый цвет красной ячейки, и это тоже не работает.

Приведенный ниже код приводит к полностью белому столбцу.

Вот мой код:

        DataGridViewColumn DGC = new DataGridViewColumn();
        DGC.Name = "Colour";
        DGC.CellTemplate = new DataGridViewTextBoxCell();
        dgPallette.Columns.Add(DGC);
        foreach (DataGridViewRow DGR in dgPallette.Rows)
        {
            Color cellColor = Color.FromArgb(
                int.Parse(DGR.Cells["Red"].Value.ToString()), 
                int.Parse(DGR.Cells["Green"].Value.ToString()), 
                int.Parse(DGR.Cells["Blue"].Value.ToString()));
            DGR.Cells["Colour"].Style.BackColor = cellColor;
        }

Есть идеи?

Заранее спасибо, Джим

1 Ответ

2 голосов
/ 05 декабря 2010

Иногда я нахожу, что установка цветов в DataGridView не работает должным образом, и в итоге прибегаю к использованию события DataGridView.CellFormatting - это всегда помогает, и достаточно просто, чтобы получить вашу голову вокруг.

Часто проблемы с форматированием возникают, когда сетка привязана к источнику данных - особенно когда вы разрешаете сортировку. Это событие преодолевает это.

...