Вопрос

Я установил свойства maxDate и minDate для DateTimePicker.Однако, когда я тестирую элемент управления во время выполнения, нет способа отличить недопустимые даты от действительных.Единственное отличие заключается в том, что нажатие на недопустимую дату ничего не дает.

Это не очень интуитивно понятно для пользователя.Я хочу иметь возможность с первого взгляда определить, каковы действительные даты.

Есть ли какой-нибудь способ выделить допустимый диапазон дат - или, что более уместно, "затемнить" недопустимые даты?Или есть ли другой элемент управления, который был бы более подходящим?Я уверен, что пара полей со списком сработала бы, но я действительно думаю, что пользователю следует предоставить элемент управления календарем, когда его попросят указать дату.

КОНТЕКСТ:Это приложение для построения графиков WinForms.Диапазон допустимых данных фиксирован (новые данные добавляются с помощью другого процесса).Пользователю необходимо выбрать дату и время для начала диаграммы (а также длительность, которая обрабатывается отдельно).

Это было полезно?

Решение

У меня похожая проблема.Я расширил элемент управления DateTimePicker, чтобы запускать процесс проверки при каждом изменении значения и либо возвращаться к предыдущему значению, либо к ближайшему допустимому значению в случае незаконного выбора.

Логическим продолжением этого является появление диалогового окна с предупреждением или метки, информирующей пользователя о том, что это произошло.

Вы также можете переопределить часть элемента управления "Отображение календаря", чтобы выделить / приглушить недопустимые параметры - например, он уже выделяет текущий день и текущий выбор.

Другие советы

Я не уверен, что есть возможность без расширения контроля самостоятельно и рисования владельцем, что потребовало бы усилий.

Если вы не можете найти нужную функциональность после, я бы рассмотрел возможность использования элемента управления ErrorProvider и проверки ввода пользователей в качестве опции.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top