1

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

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

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

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

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

谢谢!

4

3 回答 3

1

确保默认样式未被其他样式覆盖。2.0 中 DGV 的有趣怪癖:似乎继承链几乎与您的预期相反。如果您正在动态添加列,您的 DefaultCellStyle 可以被忽略并被 RowsDefaultCellStyle 覆盖。排序还可以覆盖您设置的样式。

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

PS 有趣的是,我在谷歌上搜索了一个要提供的链接,并在这个博客上看到了几乎相同的解释:

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

于 2008-11-04T20:57:17.253 回答
0

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

于 2008-11-04T18:51:05.090 回答
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;
    }                
}
于 2018-12-17T22:29:35.153 回答