開発環境:
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は扱えないそうです。
今朝、ミーは雨の中庭に出たそうです。 最近家の庭に遊びに来る白猫が朝夕遊びに来るそうで、 待ち合わせ? 綺麗な白猫なので、どこかの飼い猫のようです。