在C#中更改DataGridView或整个列的特定部分的颜色

时间:2013-09-04 07:55:11

标签: c# winforms datagridview styling

是否可以通过代码更改DataGridView的此部分的颜色?

enter image description here

如果没有,我该如何更改整个DataGridViewRow的颜色?我尝试了这段代码,但它没有改变颜色:

DataGridViewRow row = new DataGridViewRow();
row.DefaultCellStyle.BackColor = Color.Green;
row.DefaultCellStyle.ForeColor = Color.Green;

作为信息,我的专栏是DataGridViewComboBoxColumn

2 个答案:

答案 0 :(得分:1)

您可以通过设置DefaultCellStyle属性来设置行颜色。在下面的例子中,我们遍历每一行并检查cell [0]值,如果条件为true,则设置行backcolor和forecolor

foreach (DataGridViewRow row in mydataGridView.Rows)
{
    string RowType = row.Cells[0].Value.ToString();

    if (RowType == "Some Value")
    {
        row.DefaultCellStyle.BackColor = Color.Green;
        row.DefaultCellStyle.ForeColor = Color.Green;
    }
}

答案 1 :(得分:0)

如果您要更改蓝色背景,则蓝色背景是gridview中所选行的默认颜色。您可以在属性窗口中更改此颜色

 Gridview1.DefaultCellStyle.SelectionBackColor = Color.Red; or Color.Transparent
 Gridview1.DefaultCellStyle.SelectionForeColor = Color.Black; or Color.Transparent

但是如果你在非常短的持续时间内刷新网格视图,比如说在这种情况下持续时间不到1秒,你必须在Gridview中更改添加的行单元格的默认颜色(上面的senario可以在静态网格视图中正常工作)。 / p>

Gridview1.Rows[i].DefaultCellStyle.SelectionBackColor = Color.Red;  or Color.Transparent 
Gridview1.Rows[i].DefaultCellStyle.SelectionForeColor = Color.Black;or Color.Transparent