如果您设置一个简单的测试表单,其中 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,则不会执行进一步的解析,结果值将保持为“”。