在 C# WinForms 中更改网格单元格的颜色

Change the color of the Grid Cell in C# WinForms

我知道如何在标准 DataGridView 上执行此操作,例如: DataGridView.Rows[i].Cells[j].Style.ForeColor = Color.Red;。如何对 ComponentOne 库中的 C1TrueDBGrid(或 TrueDBGrid)做同样的事情? (不使用事件)。我尝试了很多方法,包括

DetailTGrid.Rows[i].Cells[j].Style.ForeColor = Color.Red;
DetailTGrid[i, j].Style.ForeColor = Color.Red;
DetailTGrid.Columns[j].Rows[i].Style.ForeColor = Red;

但没有任何效果。编辑:嗯,或者至少如何改变整条线的颜色?

感谢所有回复的人。解决了问题,只好用event.

使用了 FetchCellStyle 事件。

FetchCellStyle - 每当要渲染单元格且 C1DisplayColumn.FetchStyle 为真时发生。

代码如下:

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 起作用,您必须将所需 columnFetchStyle 属性 设置为 True.

如何开启:http://helpcentral.componentone.com/docs/c1truedbgrid/disablingeditinginaspecifiedtruedbgridcell.htm