I think the best solution is to use the build-in checkbox that tell the user if a value is specified or not.
Set the control property ShowCheckBox = true
When you bind the value to it do something like
if (value == DateTime.MinValue) {
datePicker.Checked = false;
} else {
datePicker.Checked = true;
datePicker.Value = value;
}
When reading back the value check the Checked
property.
If you don't like the displayed value when it's unchecked, you can combine that with the other suggestions.
if (!datePicker.Checked) {
// hide date value since it's not set
datePicker.CustomFormat = " ";
datePicker.Format = DateTimePickerFormat.Custom;
} else {
datePicker.CustomFormat = null;
datePicker.Format = DateTimePickerFormat.Long; // set the date format you want.
}
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…