绘制DataGridView行

时间:2008-11-04 18:27:11

标签: c# datagridview

我正在尝试将DataGridView行的背景颜色设置为红色。我尝试使用以下行:

dgvActiveCalls.Rows [1] .DefaultCellStyle.BackColor = Color.Red;

但它不起作用。然后只是为了看看更新是否有问题我试图绘制列而不是行:

dgvActiveCalls.Columns [1] .DefaultCellStyle.BackColor = Color.Red;

它工作正常。如果有人能展示绘制DataGridView行的方法,我将非常感激。

谢谢!

3 个答案:

答案 0 :(得分:1)

确保其他样式未覆盖默认样式。在2.0中有趣的DGV怪癖:似乎遗产链几乎与你期望的相反。如果要动态添加列,则可以忽略DefaultCellStyle并由RowsDefaultCellStyle覆盖。排序也可以覆盖您设置的样式。

您可能想要检查您设置这些样式的顺序,并查看有关样式继承的一些文章。

P.S。有趣的是,我用谷歌搜索了一个提供的链接,并且发现了这个博客的几乎相同的解释:

http://yakkowarner.blogspot.com/2008/06/datagridview-style-inheritance.html

答案 1 :(得分:0)

我在我的机器上测试了它并且工作正常。你确定这条线没有突出显示吗?如果突出显示,您将看到突出显示的颜色,而不是红色。

答案 2 :(得分:0)

我建议您将代码放在DataGridView的RowPrePaint事件中。例如:

private void dgv_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e)
{
    /*Here you put your validation in order to paint only the row that you want*/
    if (e.RowIndex == 1)
    {
         DataGridViewRow row = ((DataGridView)sender).Rows[e.RowIndex];
         row.DefaultCellStyle.BackColor = Color.Red;
    }                
}