開発環境:
Windows10 Pro
Microsoft Visual Studio Community 2019
SqlServer 2012
開発言語:
VB.NET FrameWork4.5

DateTimePicker Nullは扱えないけれど、空白にはできる。
VB6では日付コントロールがNullを扱えていたため、.NETへのアップグレードで苦労した人は多いかと思います。
一通りアップグレードも終わってみると、日付はNULLにする必要がそもそもあったのかとも思いも頭をもたげてきましたが、VB6ではそれなりの意味を持っていました。

.NETでも、SQL文で、日付を指定するものと日付を指定せずにSELECTするものが同一検索画面にある場合、デフォルトの日付を表示しないようにしたことがままあります。

VB6のようにNullではないのですが、CustomFormatに半角スペースを指定することで、表示を空白(半角スペース)にすることができます。

  '※DpFROMの初期化
  SUB Form_Load
    '日付
    DpFROM.Value = Now.Date
    DpFROM.Format=DateTimePickerFormat.Custom
    DpFROM.CustomFormat = " "

  '※カレンダーから値セット
  Private Sub DpFROM_ValueChanged( sender As Object,  e As EventArgs) Handles DpFROM.ValueChanged
    If Trim(DpFROM.Text) = "" then
      DpFROM.CustomFormat = "yyyy年MM月dd日"
    End If
  End Sub

  '※Deleteが押された場合
  Private Sub DpFROM_KeyDown(sender As Object, e As KeyEventArgs) Handles DpFROM.KeyDown
    If Keys.Delete then
      DpFROM.CustomFormat = " "
    End If
  End Sub

一応使えそうなので、備忘録的に書き留めておきます。

思い違いがありました。
VB6の標準の日付コントロールを使っていたと思い込んでいましたが、
InputManの日付コントロールを使っていました.。
標準の日付コントロールではVB.NETと同様にNullは扱えないそうです。

今朝、ミーは雨の中庭に出たそうです。 最近家の庭に遊びに来る白猫が朝夕遊びに来るそうで、 待ち合わせ? 綺麗な白猫なので、どこかの飼い猫のようです。