Как поменять цвет текста в ячейке C1TrueDBGrid

Я знаю как это делается на обычном DataGridView, например: DataGridView.Rows[2].Cells[4].Style.ForeColor = Color.Red;

Как сделать тоже самое на C1TrueDBGrid (или True DB Grid) из библиотеки ComponentOne? (без использование событий).

Ну или хотя-бы как поменять цвет всей строки?


Ответы (1 шт):

Автор решения: Miko

Спасибо всем кто откликнулся. Решил проблему, и пришлось использовать событие.

Использовал событие FetchCellStyle.

Определение FetchCellStyle - Occurs whenever a cell is to be rendered and the C1DisplayColumn.FetchStyle is true.

Вот код:

private void DetailTGrid_FetchCellStyle(object sender, FetchCellStyleEventArgs e)
{
    decimal sum = 0;

    for (int i = 0; i <= DetailTGrid.RowCount - 1; i++)
    {
        sum = Convert.ToDecimal(DetailTGrid[i, 4]) * Convert.ToDecimal(DetailTGrid[i, 6]);

        if (sum != Convert.ToDecimal(DetailTGrid[i, 9]))
        {
            e.CellStyle.ForeColor = Color.Red;
        }
    }        
}

По умолчанию FetchCellStyle будет отключён и не будет вызываться. Чтобы FetchCellStyle работала, нужно присвоить значение True для свойства FetchStyle для нужной колонки.

Для этого нужно: Открыть список свойств C1TrueDBGrid -> Открыть коллекцию свойства Columns -> Выбрать нужный столбик который FetchCellStyle будет отрабатывать -> и в списке свойств этого столбца найти свойство FetchStyle и присвоить True.

→ Ссылка