DataGridView Bug?单元格样式InEdit不会更新

时间:2011-01-11 13:07:11

标签: c# vb.net winforms datagridview

我目前有一个DataGridView,它取决于某些行状态(我已经定义为“new”,“modified”,“要删除”和“normal”)I在我的网格中设置行,代码如下:

'Modified
 row.DefaultCellStyle.Font = New Font(row.DataGridView.Font, FontStyle.Regular)
 row.DefaultCellStyle.BackColor = Color.LemonChiffon
 row.DefaultCellStyle.ForeColor = Color.Empty

我接触各种事件来实现这一目标 - 当我期待它们时它们会发射。

我的问题是我在DataGridView的{​​{1}}中使用了我的EditMode。我遇到了一个问题,无论选择哪个单元格(并且在编辑模式下),我的样式更改代码都不会立即更新。直到我将选定的单元格留给另一个单元格。

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

在编辑任何内容之前

Before Editing

修改单元格后

alt text

标签到另一个单元格后

alt text

我想要的结果将是从第一张图片直接转换到最后一张图片(无需从我正在编辑的单元格中“标签”。)我能做些什么来完成这项工作?

感谢。

P.S。我通常是C#中的代码所以我可以接受任何一种语言的答案(这个项目恰好在vb.net v2.0中)

1 个答案:

答案 0 :(得分:0)

我知道这有点旧,但我正在寻找一段时间来找到答案,所以我认为它可能会对未来有所帮助:

我能够通过附加到'CellFormatting'事件来解决这个问题,以便在格式改变时“取消选择”单元格。

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