如果您设置一个简单的测试表单,其中 TextBox 绑定到类的字符串属性并删除内容,则传递回属性设置器的值为""
.
如果您对 DataGridView 中的单元格执行相同操作,则传递回属性设置器的值为Nothing
.
为什么会有差异?我们可以对 DataGridView 应用什么以使其行为与 TextBox 相同?
如果您设置一个简单的测试表单,其中 TextBox 绑定到类的字符串属性并删除内容,则传递回属性设置器的值为""
.
如果您对 DataGridView 中的单元格执行相同操作,则传递回属性设置器的值为Nothing
.
为什么会有差异?我们可以对 DataGridView 应用什么以使其行为与 TextBox 相同?
Nothing
是 VB 的 C# 版本null
或数据库的NULL
. 这意味着没有值,而不是""
意味着有一个空字符串的值。
我不完全确定,但我怀疑区别在于文本框的Text
属性始终是字符串,但单元格的Value
属性可以是任何对象。当值为 时,您可以使用null-coalescing 运算符返回一个空字符串Nothing
。
Set(ByVal value As String)
_Surname = If(value, "")
End Set
或者,您可以验证单元后编辑并将其设置为""
显式。有关示例,请参见此处- 您只需更改值,而不是向用户发送消息。
如果正确DataGridViewTextBoxCell
,则默认为Null
,TextBox
默认为String.Empty
你可以检查Null vs Empty
DataGridView 在单元格解析期间将 "" 转换为 Null。
如果您处理 CellParsing 事件并仅设置 ParsingApplied,则不会执行进一步的解析,结果值将保持为“”。