Вопрос

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

Ниже приведены код в полностью белой колонне.

Вот мой код:

        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;
        }

Есть идеи?

Спасибо заранее Джим

Это было полезно?

Решение

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top