DataGridView CellFormatting事件不会触发

我已经为DataGridView上的CellFormatting事件添加了一个处理程序,以根据行的内容修改背景颜色。

即使数据被插入到表中,它似乎也不会被触发。 我通过在CellFormatting事件的IDE中双击添加事件处理程序,这似乎正确地创build了代码。

private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { // this never gets called MessageBox.Show("Event fired"); } 

我可能做错了什么?

我认为你不能为你的情况使用CellFormating事件。 当单元格的内容需要格式化以显示时,会发生这种情况。

尝试使用CellValueChanged事件(http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.cellvaluechanged.aspx)

要么

http://msdn.microsoft.com/en-us/library/x4dwfh7x.aspx选择其他适当的事件

你可以尝试RowValidated事件:

  private void dataGridView1_RowValidated(object sender, DataGridViewCellEventArgs e) { dataGridView1.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Blue; } 

注意:当您单击行并关闭表单时,将触发此事件。