除非DGV可见,否则着色细胞不起作用

时间:2012-09-18 08:36:42

标签: c# datagridview

我有一个TabControl,它在不同的选项卡上包含2个DataGridViews。这两个都是根据第三个DGV上选定行的值填充的,这个行位于TabControl之外。

我正在尝试将其中一个DGV的左侧列颜色为蓝色,如果包含该DGV的页面当前可见,则该工作正常。如果它当前不可见,则颜色不会更改。我用来改变单元格颜色的代码是

foreach (DataGridViewRow row in this.dgvInformation.Rows)
{
    DataGridViewCellStyle blueStyle = new DataGridViewCellStyle();
    blueStyle.Font = new Font("Microsoft Sans Serif", 8.25F, FontStyle.Regular);
    blueStyle.BackColor = Color.LightBlue;
    row.Cells["InfoType"].Style = blueStyle;
}

我已逐步完成代码,无论DGV是否可见,它都采用相同的路径,但单元格颜色只有在可见时才会更改。

如果当前没有显示DGV的单元格颜色,是否有原因?

非常感谢

1 个答案:

答案 0 :(得分:0)

[在这里回答我自己的问题道歉 - 信用属于Shane C我只是不想留下未解答的问题!]

修复方法是将单元格着色代码添加到DataGridView的VisibleChanged事件中,如果允许排序则还添加到Sorted事件