如何使用c#动态更改datagrid单元格前颜色

时间:2012-04-21 07:54:50

标签: c#-4.0 datagridview windows-applications

我知道这是一个愚蠢的问题,但我无法得到我想要的输出。实际上我想要动态更改datagridview单元格的颜色,因为我有这样的逻辑

 this.dataGridView1.Rows[0].Cells[1].Style.ForeColor = System.Drawing.Color.Red;

但这不适用于细胞(甚至细胞背景也未应用),

但我得到的是我分配给单元格的前面颜色名称

   string colorname = this.dataGridView1.Rows[0].Cells[1].Style.ForeColor.Name;

。我的查询中有任何错误请帮助我。

2 个答案:

答案 0 :(得分:0)

要自定义具有特定值的单元格样式,请为DataGridView.CellFormatting事件实现处理程序。此事件的处理程序接收DataGridViewCellFormattingEventArgs类型的参数。此对象包含的属性可用于确定要格式化的单元格的值及其在DataGridView控件中的位置。此对象还包含一个CellStyle属性,该属性初始化为正在格式化的单元格的InheritedStyle属性的值。您可以修改单元格样式属性以指定适合单元格值和位置的样式信息。

来自MSDN

private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
    if (e.ColumnIndex == 0 && e.RowIndex == 0)
        e.CellStyle.ForeColor = Color.Red;
}

结果如下:

enter image description here

在if语句中插入首选索引而不是零来仅更改您需要的那些单元格的ForeColor。

答案 1 :(得分:0)

检查

dataGridView1[col, row].Style.ForeColor = Color.Blue;

我希望这有帮助!