2

如果您设置一个简单的测试表单,其中 TextBox 绑定到类的字符串属性并删除内容,则传递回属性设置器的值为"".

在此处输入图像描述

如果您对 DataGridView 中的单元格执行相同操作,则传递回属性设置器的值为Nothing.

在此处输入图像描述

为什么会有差异?我们可以对 DataGridView 应用什么以使其行为与 TextBox 相同?

4

3 回答 3

1

Nothing是 VB 的 C# 版本null或数据库的NULL. 这意味着没有值,而不是""意味着有一个空字符串的值。

我不完全确定,但我怀疑区别在于文本框的Text属性始终是字符串,但单元格的Value属性可以是任何对象。当值为 时,您可以使用null-coalescing 运算符返回一个空字符串Nothing

Set(ByVal value As String)
   _Surname = If(value, "")
End Set

或者,您可以验证单元后编辑并将其设置为""显式。有关示例,请参见此处- 您只需更改值,而不是向用户发送消息。

于 2012-12-12T18:18:33.667 回答
1

如果正确DataGridViewTextBoxCell,则默认为Null
TextBox默认为String.Empty

你可以检查Null vs Empty

于 2012-12-13T00:15:03.400 回答
0

DataGridView 在单元格解析期间将 "" 转换为 Null。

如果您处理 CellParsing 事件并仅设置 ParsingApplied,则不会执行进一步的解析,结果值将保持为“”。

于 2016-08-10T09:48:05.130 回答