首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >DataGridView的CellFormatting问题

DataGridView的CellFormatting问题
EN

Stack Overflow用户
提问于 2020-07-22 04:32:37
回答 2查看 119关注 0票数 0

我有一个用从几个表中提取的数据填充的DataGridView (我使用的是SQLite,但我不认为这与这里相关)。列(11)中的一列可以具有值或可以为空。如果有值,我想将行显示为绿色,如果没有值,则不执行任何操作。我在CellFormatting中使用了以下代码来执行此操作:

代码语言:javascript
运行
复制
private void dgv_CellFormatting(Object sender, DataGridViewCellFormattingEventArgs e)
{
    if (e.ColumnIndex == 11)
    {
        if (!String.IsNullOrEmpty(dgv.Rows[e.RowIndex].Cells[11].Value.ToString()))
        {
            dgv.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Green;
        }
    }
}

如果第一行的第11列中没有值,则此方法非常有效,但如果有,则无论第11列中是否有值,整个DataGridView都将显示为绿色。

提前感谢您的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-07-23 09:02:29

我假设您想要的是“如果”列11中的单元格的值不为空,则将该行显示为绿色,如果列11中的单元格的值为空,则不要将其显示为绿色。

发布的代码中的问题(我明白了)是,如果单元格11中的值为空,则背景色永远不会重新设置为白色。

例如,使用发布的代码,让我们假设第0行在第11列中有一个值,它不是空的!考虑到这一点,Cell_Formatting事件将友好地将第0行显示为绿色。现在,第0行显示为绿色,让我们单击第0行单元格11上的单元格,并“移除”单元格11中的数据,使其为空。删除单元格11中的数据后,将触发Cell_Formatting事件。由于单元格11中的值为空,因此该行不会显示为绿色。

不幸的是,该行已经是绿色的。

这意味着每当行变为绿色时,…无论单元格11中的值是什么,它都将始终保持绿色。

下面的代码将在单元格11中的值不为空时将行颜色更改为绿色,并在单元格11中的值为空时将行颜色更改为白色。

代码语言:javascript
运行
复制
private void dgv_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) {
  if (e.ColumnIndex == 11) {
    if (!String.IsNullOrEmpty(dgv.Rows[e.RowIndex].Cells[11].Value.ToString())) {
      dgv.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Green;
    }
    else {
      dgv.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.White;
    }
  }
}

我希望这是有意义的。

票数 0
EN

Stack Overflow用户

发布于 2020-07-22 05:26:21

空条件运算符"?“在这种情况下可能会有所帮助。添加?after值(参见下面的代码片段,我已经更新了它)。

代码语言:javascript
运行
复制
if(!String.IsNullOrEmpty(dgv.Rows[e.RowIndex].Cells[e.ColumnIndex].Value?.ToString()))
{
   dgv.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Green;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63022647

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档