2

クラスの文字列プロパティにバインドされた TextBox を使用して簡単なテスト フォームを設定し、コンテンツを削除すると、プロパティ セッターに返される値は"".

ここに画像の説明を入力

DataGridView のセルで同じことを行うと、プロパティ セッターに返される値はNothing.

ここに画像の説明を入力

なぜ違いがあり、TextBox と同じように動作させるために DataGridView に適用できるものはありますか?

4

3 に答える 3

1

NothingVB の C# のバージョンnullまたはデータベースのNULL. ""空の文字列の値があることを意味するのとは対照的に、値がないことを意味します。

完全にはわかりませんが、テキストボックスのTextプロパティは常に文字列ですが、セルのValueプロパティは任意のオブジェクトになる可能性があるため、違いがあるのではないかと思います。値が の場合、 null 合体演算子を使用して空の文字列を返すことができます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 に答える