首页 > 解决方案 > 根据datagridview中单元格的值更改特定列的文本颜色

问题描述

我正在尝试Pass_Fail在我的 datagridview 中选择列并遍历其中的所有单元格。如果单元格包含“通过”,我会将单元格的背景颜色更改为绿色,如果它包含“失败”,我会将颜色更改为红色。我还使用绑定源来检索数据以填充 datagridview 单元格。我整天都在试图解决这个问题,我们将不胜感激。

谢谢

field 1    field 2     field3     Pass_Fail    field5
value1     value2      value3     Pass         value5
value1     value2      value8     Fail         value5

标签: c#winformsdatagridviewbindingsource

解决方案


来自https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.datagridview.cellformatting?view=netframework-4.8的示例

这将是一个示例,说明如何使用 datagridview 控件上的 CellFormatting 事件针对您的情况实现它:

 private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
        {
            if(this.dataGridView1.Columns[e.ColumnIndex].HeaderText.Equals("Pass_Fail"))
            {
                if (e.Value.Equals("Pass"))
                    e.CellStyle.BackColor = Color.Green;
                else if (e.Value.Equals("Fail"))
                    e.CellStyle.BackColor = Color.Red;
                else
                    e.CellStyle.BackColor = this.dataGridView1.DefaultCellStyle.BackColor;
            }
        }

推荐阅读