如何在C#中的datagridview中进行条件格式化?

时间:2009-10-07 08:34:15

标签: c# .net winforms

在Windows应用程序中 我想根据值范围

在datagridview中设置不同单元格的颜色

假设 值1..22:单元格颜色应为绿色 值23.30:单元格颜色应为灰色 值> 30:单元格颜色应为红色

我该怎么做..请建议一些代码片段? 如何在C#中的datgridview中进行条件格式化?

2 个答案:

答案 0 :(得分:1)

请参阅我对Windowsforms: How to draw lines/bars on a DataGridView?的回答。这个问题在VB.NET中提供了一个答案(应该很容易转换为C#)。

更新以适应问题

示例:

private void dataGridView1_CellPainting(object sender, System.Windows.Forms.DataGridViewCellPaintingEventArgs e)
{
    if (e.Value > 0 && e.Value <= 22 )
    {
        e.Graphics.FillRectangle(Color.Green, e.CellBounds);
    }
    else if (e.Value > 22 && e.Value <= 30 )
    {
        e.Graphics.FillRectangle(Color.Grey, e.CellBounds);
    }
    else if (e.Value > 30)
    {
        e.Graphics.FillRectangle(Color.Red, e.CellBounds);
    }
    else
    {
        e.Graphics.FillRectangle(Color.White, e.CellBounds);
    }
}

答案 1 :(得分:1)

您可以根据不同的条件应用DataGridViewCellStyle对象

DataGridViewCellStyle cellstyle = new DataGridViewCellStyle();
cellstyle.BackColor = Color.Black;
cellstyle.ForeColor = Color.Yellow
dgvAllData.Rows[5].Cells[2].Style = cellstyle;
dgvAllData.Rows[3].Cells[2].Style = cellstyle;
dgvAllData.Rows[6].Cells[2].Style = cellstyle;