(.Net)DataGridViewでセル値がNULL(DBNull)や空文字時に表示するテキストを変えたい
要件としては、DataGridView でセルの値が null,DBNull,空文字時に "値が入っていません" というメッセージを表示するというものです。
最初、 DOBON:DataGridViewでセルの値がnullやDBNull.Valueの時に表示するテキストを変更するで紹介されているように、DefaultCellStyle.NullValue プロパティを使おうと思っていました。
Me.dgv.Columns("a").DefaultCellStyle.NullValue = "値が入っていません"
しかし、この場合だと、セル値が null,DBNull の時しか使えないようです。
結局、CellFormatting イベントを使って、if文で判断するようにしました。
'dgvはDataGridViewコントロールPrivate Sub dgv_CellFormatting(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellFormattingEventArgs) Handles dgv.CellFormatting
'ホスト名列に値が無い場合は未使用と表記する。
If dgv.Columns("a").Index = (e.ColumnIndex) _
AndAlso (dgv.Rows(e.RowIndex).Cells("a").Value Is DBNull.Value _
OrElse String.IsNullOrEmpty(dgv.Rows(e.RowIndex).Cells("a").Value)) Then
e.Value = "未使用です"
End If
End Sub
空文字もNULLとみなす要件の時は注意が必要ですね。