我正在尝试将DataGridView行的背景颜色设置为红色。我尝试使用以下行:
dgvActiveCalls.Rows [1] .DefaultCellStyle.BackColor = Color.Red;
但它不起作用。然后只是为了看看更新是否有问题我试图绘制列而不是行:
dgvActiveCalls.Columns [1] .DefaultCellStyle.BackColor = Color.Red;
它工作正常。如果有人能展示绘制DataGridView行的方法,我将非常感激。
谢谢!
答案 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;
}
}