2017-08-11 84 views
0

我试图编辑DataGridViewCell的BackColor以在用户输入的值不正确时显示为红色。DataGridView单元格颜色在错误时不会更改

private void dataGridView1_DataError(object sender, DataGridViewDataErrorEventArgs e) 
    { 
     if (e.Exception is FormatException) 
     { 
      dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Style.BackColor = Color.Red; 
     } 

    } 

由于我不明白的原因,颜色并未实际更新。它可以很好地编辑任何其他单元而不是选定的单元格。

+0

我已经部分地通过编辑现在固定在它使用编辑的(文本框)背面颜色也。但我仍不明白为什么背景颜色不更新。 –

回答

0

我不知道你的代码,但也许你需要再次考虑程序的登录。这取决于异常来自何处。如果来自未设置文本的地方,则无法更改颜色。 DataError是异常,因此抛出的代码没有运行。我认为DataError没有关于哪个单元格是例外的每个异常的信息。所以有可能你不改变颜色。

我不知道你的代码,所以我不能帮上忙。但我会告诉你我会怎么做。

我将做一个函数来检查用户输入,我会打电话给它Datagreedview CellValidating事件和变色那里,如果输入不正确

+0

我在更新CellValidating中的颜色时也遇到同样的问题。或者,这可能是与错误仍然被抛出? –

+0

只需要进一步添加 - 问题不在于颜色属性不会更改。颜色属性实际上是红色的,但是如果我想要验证取消(保留在同一文本框中),它看起来不会显示为红色。 –

+0

您是否可以尝试离开单元格以适应更改,然后重新聚焦它? – Angua