【发布时间】:2013-05-21 16:38:57
【问题描述】:
我有一个 datagridview,我使用 dgv.DataSource = table 从数据源填充它。然后,我使用单元格格式化事件根据值更改 datagridview 中特定单元格的颜色。我面临的问题是,当查看某些 pc 上的数据时,一些随机单元格将显示为白色,其中没有数据。我用来设置颜色的代码如下,但它不仅仅是我设置自定义的单元格呈现白色的颜色:
private void dgvRaw_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (e != null)
{
DataGridView dgv = (DataGridView)sender;
if (dFlags.ContainsKey(dgv.Columns[e.ColumnIndex].Name))
{
e.CellStyle.ForeColor = Color.Black;
// If pass set green else set red
if (e.Value != null)
{
if (e.Value.ToString() == "0")
e.CellStyle.BackColor = System.Drawing.Color.Green;
else
e.CellStyle.BackColor = System.Drawing.Color.Red;
}
else
e.CellStyle.BackColor = System.Drawing.Color.Orange;
}
}
}
我真的不知道为什么会发生这种情况,或者是因为计算机无法处理渲染大网格视图。谢谢!
【问题讨论】:
-
你在这个网格中显示了多少项目?
-
为了消除方程式中的任何显示错误,请尝试检查源代码:其中是否包含数据?如果是但未显示:显示错误。如果不是……那就另当别论了,而且很奇怪
-
这取决于查询,但可能平均为 100 列和 1000 行。我对只有 10 列和 5-20 行的较小数据网格视图有同样的问题,所以我怀疑它与数据集的大小有关
-
尝试使用
dgv.refresh()刷新网格怎么样? -
@Bartdude 我知道数据就在其中,因为如果单击单元格上的数据会出现,但有时会在其他地方出现另一个白色单元格,尤其是在突出显示数据时。
标签: c# datagridview rendering