C# 更改CellEndEdit中非选定单元格的颜色不是';t粘住
我有一个输入了值的datagridview。如果我正在更改的单元格的值为x,而dgv中另一个单元格的值为y。如果x>y,我希望单元格1为绿色,单元格2为黑色,如果相等,则两者均为橙色。很简单。我正在CellEndEdit事件中确定这些值 问题是当前/选定的单元格颜色正在更改,但另一个单元格(单元格2)没有更改。我知道这是一个paint not Fireing事件或类似事件,但我尝试在调用后添加Refresh(),但没有效果。我运行了一个断点,代码被命中时没有任何问题,索引是正确的 有什么建议吗?下面是我如何改变颜色的:C# 更改CellEndEdit中非选定单元格的颜色不是';t粘住,c#,datagridview,C#,Datagridview,我有一个输入了值的datagridview。如果我正在更改的单元格的值为x,而dgv中另一个单元格的值为y。如果x>y,我希望单元格1为绿色,单元格2为黑色,如果相等,则两者均为橙色。很简单。我正在CellEndEdit事件中确定这些值 问题是当前/选定的单元格颜色正在更改,但另一个单元格(单元格2)没有更改。我知道这是一个paint not Fireing事件或类似事件,但我尝试在调用后添加Refresh(),但没有效果。我运行了一个断点,代码被命中时没有任何问题,索引是正确的 有什么建议吗?
dgvPoolTable.Rows[e.RowIndex].Cells[e.ColumnIndex].Style.ForeColor = Color.Orange;
dgvPoolTable.Rows[indexX].Cells[indexY].Style.ForeColor = Color.Orange;
第二行是我遇到麻烦的那一行
我应该把这个移到另一个事件吗 private void dgvPoolTable_CellFormatting(对象发送方,DataGridViewCellFormattingEventArgs e)
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;
}
}
}
{
如果(e.ColumnIndex==indix您的单元格1)
{
int stutse=1;
如果(e.Value>dgtrans.Rows[e.RowIndex].Cells[cell2您的索引].Value)
stutse=1;
else if(e.Value
您是否将它们向后放置?indexX通常是一列,但您正在引用一行,indexY通常是一行,但您正在引用一列。您是否有任何更改单元格的处理方法(例如通过创建另一个单元格)?请使用cellFormat事件