У вас не может быть бесполезного средства выбора даты с готовым элементом управления. Зачем? Он поддерживается DateTime, который не обнуляется.
Вы можете отключить его с помощью другого элемента управления или оставить его отключенным до тех пор, пока пользователь не щелкнет (плохой UX для энтузиастов клавиатуры, как я), или найти или создать (!) Тот, который использует Nullable<DateTime>
.
Edit:
В ответ на ваш комментарий, да, вы можете сделать это; на самом деле, я сделал это.
- использовать поля или частные свойства для хранения дат 'from' и 'to' вместо чтения их из dtp и установки их значений по умолчанию min и max
- используйте логический флаг, чтобы указать, когда вы манипулируете значением dtp в коде, а в событии dtp
ValueChanged
установите значение флага в false
- в событии загрузки формы установите флаг в значение true и значение dtp в сегодняшнюю дату
- также в событии
ValueChanged
, установите в полях from
и to
значения dtps (вы должны установить оба при изменении одного dtp, потому что пользователь увидит другое, как установлено сегодня , но значение поиска по-прежнему будет минимальным или максимальным).
Проблема в том, что, как только пользователь изменил выбор даты, он не может легко вернуться к «всем датам». Кроме того, пользователь не может выбрать «только сегодня», не изменив сначала одну из дат, а затем вернув ее обратно.
Я думаю, что лучшим решением для вас является наличие флажка «поиск по диапазону дат», который либо разрешает использование двух отключенных dtps, либо отображает скрытые dtps. Затем выполняется поиск от минимального до максимального значения, если флажок не установлен, а когда установлен флажок , вы используете две даты dtp независимо от того, какие они есть. Не забудьте разобраться с тем, что to
и from
вышли из строя, что можно сделать несколькими способами.