【发布时间】:2012-11-28 23:29:20
【问题描述】:
我有一个 TabControl,它在单独的选项卡上包含 2 个 DataGridView。这两个都是根据第三个 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 当前未显示,是否有无法更改其单元格颜色的原因?
非常感谢
【问题讨论】:
-
我想我不久前遇到了一些麻烦。当您移动到该选项卡时,您可能需要重新为单元格着色。不过,我会慢慢思考是否有更好的解决方案。就像你在着色后对细胞进行排序一样,我相信它们会回到标准。
-
谢谢。我没有注意到排序的东西,但是是的,它也重置了颜色!
-
您可能必须使用事件处理程序在某些事件之后重新着色,例如变得可见或排序。我做了一个正确的噩梦,我认为这是一项简单的任务
-
干杯,我会接受这个建议
标签: c# datagridview