クラスの文字列プロパティにバインドされた TextBox を使用して簡単なテスト フォームを設定し、コンテンツを削除すると、プロパティ セッターに返される値は""
.
DataGridView のセルで同じことを行うと、プロパティ セッターに返される値はNothing
.
なぜ違いがあり、TextBox と同じように動作させるために DataGridView に適用できるものはありますか?
クラスの文字列プロパティにバインドされた TextBox を使用して簡単なテスト フォームを設定し、コンテンツを削除すると、プロパティ セッターに返される値は""
.
DataGridView のセルで同じことを行うと、プロパティ セッターに返される値はNothing
.
なぜ違いがあり、TextBox と同じように動作させるために DataGridView に適用できるものはありますか?
Nothing
VB の C# のバージョンnull
またはデータベースのNULL
. ""
空の文字列の値があることを意味するのとは対照的に、値がないことを意味します。
完全にはわかりませんが、テキストボックスのText
プロパティは常に文字列ですが、セルのValue
プロパティは任意のオブジェクトになる可能性があるため、違いがあるのではないかと思います。値が の場合、 null 合体演算子を使用して空の文字列を返すことができますNothing
。
Set(ByVal value As String)
_Surname = If(value, "")
End Set
または、編集後にセルを検証し、""
明示的に設定することもできます。例については、こちらを参照してください。ユーザーにメッセージを送る代わりに、値を変更するだけです。
正しい場合、DataGridViewTextBoxCell
デフォルトはNull
であり、TextBox
デフォルトはString.Empty
Null vs Emptyをチェックするかもしれません
DataGridView は、セルの解析中に "" を Null に変換します。
CellParsing イベントを処理し、ParsingApplied を設定しただけの場合、それ以上の解析は実行されず、結果の値は "" のままになります。