Я установил свойства MaxDate и MinDate для DateTimePicker. Однако, когда я тестирую элемент управления во время выполнения, невозможно отличить недопустимые даты от действительных. Единственная разница в том, что нажатие на недопустимую дату ничего не дает.
Это не очень интуитивно понятно для пользователя. Я хочу иметь возможность сразу определить действительные даты.
Есть ли способ выделить действительный диапазон дат - или, что более уместно, «затемнить» недопустимые даты? Или есть другой контроль, который был бы более подходящим? Я уверен, что пара комбинированных полей подойдет, но я действительно думаю, что пользователю следует предоставить элемент управления календарем, когда его спросят о дате.
КОНТЕКСТ: Это приложение для построения графиков WinForms. Диапазон допустимых данных фиксирован (новые данные добавляются через другой процесс). Пользователь должен выбрать дату и время для начала графика (а также продолжительность, которая обрабатывается отдельно).
Я использую .NET 2.0 в Vista, и DateTimePicker вообще не показывает даты за пределами диапазона дат min / max.





Я не уверен, что есть без расширения контроля и рисования владельца, что было бы усилием.
Если вы не можете найти нужную функциональность, я бы рассмотрел возможность использования элемента управления ErrorProvider и проверки ввода пользователя в качестве опции.
У меня похожая проблема. Я расширил элемент управления DateTimePicker для запуска процесса проверки всякий раз, когда значение изменяется, и для возврата к предыдущему значению или к ближайшему допустимому значению в случае неправильного выбора.
Логическим расширением этого является появление диалогового окна с предупреждением или метки, чтобы проинформировать пользователя о том, что это произошло.
Вы также можете переопределить часть отображения календаря элемента управления, чтобы выделить / выделить недопустимые параметры - например, он уже выделяет текущий день и текущий выбор.
Хм, на какой версии Framework вы это видите? Все мои DateTimePickers (на .NET 3.5 SP1) вообще не отображают недопустимые даты.