【发布时间】:2014-08-04 02:41:48
【问题描述】:
我有一个DataGridView,有 3 列,其中两列是用户可编辑的。
在访问单元格的值时遇到 NullRef 异常
someObject.Property = dgv.Rows(x).Cells(y).Value.ToString()
这显然是因为我在使用该值之前没有检查 null。因此,我决定将初始化DataGridView 的对象更改为从不包含填充单元格的字符串属性的空值,而不是仅仅检查Nothing 值(我现在会这样做,永远不要害怕)。我只是改用String.Empty。
我认为一切都会很好,但似乎当我编辑单元格并将其留空时,它会将其视为空值而不是 String.Empty。我已经处理了CellBeginEdit、CellEndEdit 和CellLeave 事件,试图找到它从哪里获得这个神奇的空值,但无济于事。
我看到the DataGridViewCellStyle.NullValue property on the MSDN,我认为这就是答案,但事实证明,NullValue 属性默认为String.Empty,所以这没有多大意义。
显然,这里的简单答案是“在使用前检查 null”,但为什么我不能强制它将空字符串视为空字符串而不是 null 呢?
【问题讨论】:
标签: c# .net vb.net datagridview