如何更改数据网格的特定行的颜色

时间:2010-10-17 06:28:07

标签: c# .net

我要将数据表绑定到datagrid 我只想根据datatable行上的值更改特定行datagrid的颜色。我需要c#/ .net代码

4 个答案:

答案 0 :(得分:2)

网格视图具有一种控制样式的属性层次结构。这里有一个很好的概述:

http://msdn.microsoft.com/en-us/library/1yef90x0.aspx

但最简单的说,您可以为未选择的行设置DataGridViewRow.DefaultCellStyle.BackColor属性,为所选行设置DataGridViewRow.DefaultCellStyle.SelectionBackColor属性。

答案 1 :(得分:2)

类似的东西:

this.dataGridView1.Rows[RowIndex].DefaultCellStyle.BackColor = Color.Yellow;

或者如果你想通过鼠标移动事件

private void DataGridView1_CellEnter(object sender, DataGridViewCellEventArgs e)
{
dataGridView1[e.ColumnIndex, e.RowIndex].Style.SelectionBackColor = Color.Red;
}

private void DataGridView_CellLeave1(object sender, DataGridViewCellEventArgs e)
{
dataGridView1[e.ColumnIndex, e.RowIndex].Style.SelectionBackColor = Color.Blue;
}

此外,Change individual DataGridView row colors based on column value可能有所帮助。

答案 2 :(得分:0)

如果要根据行的内容而不是选择状态更改所选行的外观,我就是这样做的:

   private void DataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
    {
        if (RowShouldBeRed(e))
        {
            e.CellStyle.BackColor = Color.LightPink;
            e.CellStyle.SelectionBackColor = Color.Red;
        }
        else
        {
            e.CellStyle.BackColor = DataGridView1.DefaultCellStyle.BackColor;
            e.CellStyle.SelectionBackColor = DataGridView1.DefaultCellStyle.SelectionBackColor;
        }
    }

在此示例中,RowShouldBeRed函数是用于确定如何为行着色的逻辑的存根。

答案 3 :(得分:0)

//对于特定单元格

dataGridView1.Rows[RowIndex].Cells[ColumnIndex].Style.BackColor = Color.Red;

//对于特定行

dataGridView1.Rows[RowIndex].DefaultCellStyle.BackColor = Color.Black;

//对于特定列

dataGridView1.Columns[ColumnIndex].DefaultCellStyle.BackColor =Color.Yellow;