在CellEndEdit中更改未选定单元格的颜色不会粘连

时间:2015-04-16 19:42:33

标签: c# datagridview

我有一个输入值的datagridview。如果我正在改变的单元格的值是x,并且dgv中的另一个单元格的值是y。如果x> y,我希望cell1为绿色,cell2为黑色,如果相等,则为橙色。很简单。我在CellEndEdit事件中确定这些值。

问题是当前/选定的单元格颜色正在改变,但另一个单元格(cell2)没有改变。我知道这是一个没有触发事件的油漆,但是我在调​​用后尝试添加了Refresh(),并没有好处。我已经运行了一个断点,代码正在被击中而没有任何问题,索引是正确的。

有什么建议吗?这是我改变颜色的方式:

dgvPoolTable.Rows[e.RowIndex].Cells[e.ColumnIndex].Style.ForeColor = Color.Orange;
dgvPoolTable.Rows[indexX].Cells[indexY].Style.ForeColor = Color.Orange;

第二行是我遇到麻烦的那一行。

我应该将此移至另一个活动吗?

1 个答案:

答案 0 :(得分:0)

 private void dgvPoolTable_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
    {

        if (e.ColumnIndex == indix your cell1)
        {
            int stutse=1;
            if(e.Value > dgtrans .Rows[e.RowIndex ].Cells [cell2 your index].Value)
             stutse=1;
           else if(e.Value < dgtrans .Rows[e.RowIndex ].Cells [cell2 your index].Value)
            stutse=2;
             else
            stutse=3;
            switch (stutse)
            {
                case 3:

                    e.CellStyle.ForeColor = Color.Green;

                    break;
                case 2:
                    e.CellStyle.ForeColor = Color.GreenYellow;
                    break;
                case 1:
                    e.CellStyle.ForeColor = Color.LawnGreen;
                    break;

                default:
                    e.CellStyle.ForeColor = Color.BurlyWood;
                    break;
            }

        }
    }