我有一个输入值的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;
第二行是我遇到麻烦的那一行。
我应该将此移至另一个活动吗?
答案 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;
}
}
}