C# DataGridView错误?编辑中的单元格样式不';t更新

C# DataGridView错误?编辑中的单元格样式不';t更新,c#,vb.net,winforms,datagridview,C#,Vb.net,Winforms,Datagridview,我目前有一个DataGridView,它根据特定的行状态(我已定义为“新建”、“修改”、“待删除”和“正常”)在我的网格中设置行样式,代码如下: 'Modified row.DefaultCellStyle.Font = New Font(row.DataGridView.Font, FontStyle.Regular) row.DefaultCellStyle.BackColor = Color.LemonChiffon row.DefaultCellStyle.ForeColor =

我目前有一个DataGridView,它根据特定的行状态(我已定义为“新建”、“修改”、“待删除”和“正常”)在我的网格中设置行样式,代码如下:

'Modified
 row.DefaultCellStyle.Font = New Font(row.DataGridView.Font, FontStyle.Regular)
 row.DefaultCellStyle.BackColor = Color.LemonChiffon
 row.DefaultCellStyle.ForeColor = Color.Empty
我依靠各种各样的事件来实现这一点——它们在我期望的时候开火

我的问题是,我在
editonener
EditMode>模式中使用我的
DataGridView
。我遇到了一个问题,无论选择哪个单元格(因此在编辑模式下),我的样式更改代码都不会立即更新。直到我离开所选单元格,换到另一个单元格

以下是几个屏幕截图,显示了此问题的生命周期:

在编辑任何东西之前

修改单元格后

切换到另一个单元格后

我想要的结果是从第一张图像直接过渡到最后一张图像(无需在编辑的单元格外“制表符”),我能做些什么来实现这一点吗

谢谢


另外,我通常用C语言编写代码,因此我可以接受任何一种语言的答案(该项目恰好是在vb.net v2.0中)

我知道这有点旧,但我一直在寻找一段时间来找到答案,所以我想这可能会对将来的人有所帮助:

我可以通过附加“CellFormatting”事件来解决这个问题,在格式更改时“取消选择”单元格

this.DataGridView.CellFormatting += 
    (s, e) => { this.DateGridView.ClearSelection(); }

您是否尝试过
CellBeginEdit
event?@Bolu当前我使用
CurrentCellDirtyStateChanged
,因为我想在行被修改后立即将其标记为“已修改”
CellBeginEdit
奇怪的是,只有在我离开牢房时才会触发。