更改单元格时,检查datagridview值是否为空

时间:2018-02-24 08:22:12

标签: c#

当我离开时,我使用CellEndEdit事件来捕获currentCell值。问题是,如果用户删除了所有单元格并尝试移动到另一个单元格,我收到错误Exception thrown System.NullReference

这是我的代码,我告诉我,如果单元格为空或空,则不执行任何操作

我试过了:

 if ( AppointmentGrid[e.ColumnIndex, e.RowIndex].Value != "")
 if ( AppointmentGrid[e.ColumnIndex, e.RowIndex].Value != null)
 if ( AppointmentGrid[e.ColumnIndex, e.RowIndex].Value.ToString() != "")
 if ( AppointmentGrid[e.ColumnIndex, e.RowIndex].Value.ToString() != "")
 if ( !String.IsNullOrWhiteSpace(AppointmentGrid[e.ColumnIndex, e.RowIndex].Value.ToString()))

上面的任何内容都没有效果我得到了Null reference。 有没有其他的可以检查我目前的细胞内部是否有东西?

1 个答案:

答案 0 :(得分:0)

也许Value为空。您可以使用空传播运算符?来避免异常。

 if ( AppointmentGrid[e.ColumnIndex, e.RowIndex]?.Value != "")
 if ( AppointmentGrid[e.ColumnIndex, e.RowIndex]?.Value != null)
 if ( AppointmentGrid[e.ColumnIndex, e.RowIndex]?.Value.ToString() != "")
 if ( AppointmentGrid[e.ColumnIndex, e.RowIndex]?.Value.ToString() != "")
 if ( !String.IsNullOrWhiteSpace(AppointmentGrid[e.ColumnIndex, e.RowIndex]?.Value.ToString()))