DOBON.NET プログラミング道: .NET Framework, VB.NET, C#, Visual Basic, Visual Studio, インストーラ, ...

DataGridViewでセルの値がnullやDBNull.Valueの時に表示するテキストを変更する

注意:DataGridViewコントロールは、.NET Framework 2.0で新しく追加されました。

セルの値がnull(VB.NETではNothing)やDBNull.Valueの時に、セルに表示される文字列を指定するには、セルスタイル(DataGridViewCellStyleオブジェクト)のNullValueプロパティを使用します。なお、セルスタイルに関する知識の無い方は、まずは「DataGridViewにセルスタイルを設定する」をお読みください。

セルの値がnullやDBNull.Valueの時に、セルに「指定されていません。」と表示されるようにするには、次のようにします。

VB.NET
コードを隠すコードを選択
DataGridView1.DefaultCellStyle.NullValue = "(指定されていません)"
C#
コードを隠すコードを選択
DataGridView1.DefaultCellStyle.NullValue = "(指定されていません)";

NullValueプロパティには文字列以外のオブジェクトも設定できます。例えば、画像を表示するセルならば、画像を設定することができます。

null値の入力

ユーザーがNullValueプロパティで指定された文字列をセルに入力した場合、そのセルにはnull値が入力されます。

補足:ユーザーは「Ctrl + 0」キーを押すことによってもnull値を入力できます。

ユーザーがセルにnull値を入力した時にデータソースの値が何になるかは、セルスタイルのDataSourceNullValueプロパティで決定されます。デフォルトではDataSourceNullValueプロパティはDBNull.Valueですので、上記の例でユーザーがセルに「指定されていません。」と入力すると、そのセルの値はDBNull.Value(セルの型が参照型のときは、null)になります。

DataSourceNullValueプロパティを変更する例を示します。NullValueを「-」、DataSourceNullValueを「X」にしています。このようにした状態でユーザーがセルに「-」を入力すると、そのセルが確定された後、「X」に変わります。

VB.NET
コードを隠すコードを選択
DataGridView1.DefaultCellStyle.NullValue = "-"
DataGridView1.DefaultCellStyle.DataSourceNullValue = "X"
C#
コードを隠すコードを選択
DataGridView1.DefaultCellStyle.NullValue = "-";
DataGridView1.DefaultCellStyle.DataSourceNullValue = "X";

NullValueやDataSourceNullValueプロパティが変更されたか調べる

NullValueやDataSourceNullValueプロパティが変更されたかを調べるには、IsNullValueDefaultとIsDataSourceNullValueDefaultプロパティを使用します。変更されていれば、falseとなります。NullValueやDataSourceNullValueプロパティの値が既定値と同じであっても、それが設定されたものであれば、falseとなるようです。

注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。

  • .NET Tipsをご利用いただく際は、注意事項をお守りください。