首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DataGridView单元格将空的可编辑单元格视为null,忽略DataGridViewCellStyle.NullValue属性

DataGridView单元格将空的可编辑单元格视为null,忽略DataGridViewCellStyle.NullValue属性
EN

Stack Overflow用户
提问于 2014-06-13 21:52:06
回答 1查看 846关注 0票数 1

我有一个包含3列的DataGridView,其中两列是用户可编辑的。

在访问单元格的值时,我遇到了一个NullRef异常

代码语言:javascript
复制
 someObject.Property = dgv.Rows(x).Cells(y).Value.ToString()

这显然是因为我在使用该值之前没有检查是否为null。因此,我决定更改初始化DataGridView的对象,使填充单元格的Nothing属性从不包含null值,而不是只检查null值(我现在就会这么做,不用担心)。我只是改用了String.Empty

我以为一切都很好,但似乎当我编辑单元格并将其留空时,它会将其视为null值而不是String.Empty。我已经处理了CellBeginEditCellEndEditCellLeave事件,试图找出它是从哪里获得这个神奇的空值的,但无济于事。

我看到了the DataGridViewCellStyle.NullValue property on the MSDN,我以为它就是答案,但事实证明,NullValue属性缺省为String.Empty,所以这没有多大意义。

显然,这里的简单答案是“在使用之前检查null”,但是为什么我不能强制它将空字符串视为空字符串而不是null呢?

EN

回答 1

Stack Overflow用户

发布于 2014-07-03 07:37:54

数据网格单元格值是对象,空字符串为null。

您可以将其转换为字符串,然后检查是否为string.empty,但只要检查它是否为空,就不会太远。

代码语言:javascript
复制
dim _value as string = dgv.Rows(x).Cells(y).Value
someObject.Property = _value

或者编写一个函数来检查

代码语言:javascript
复制
Public Function checkForNull(_value as object) as string

If _value is nothing then return string.empty else return _value.tostring()

End Function

……

代码语言:javascript
复制
SomeObject.Property = checkForNull(dgv.Rows(x).Cells(y).Value)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24207000

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档