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