Ограничение дат в форме победы C # DateTimePicker - PullRequest
3 голосов
/ 02 декабря 2011

Можно ли ограничить, какие даты пользователь может выбрать из dateTimePicker в приложении C # winforms?

Основной принцип для меня таков: у меня есть comboBox с 5 элементами в немВ зависимости от того, какой элемент пользователь выбирает, я бы хотел ограничить, какие даты он может затем выбрать, имея недоступные даты серым цветом.

Возможно ли это?

Ответы [ 5 ]

10 голосов
/ 02 декабря 2011

Используйте свойства MinDate и MaxDate.

dateTimePicker.MinDate = DateTime.Now;
dateTimePicker.MaxDate = DateTime.Now.AddDays(15);

DateTimePicker
(рендер на французской Windows 7)

1 голос
/ 02 декабря 2011

Элемент управления DateTimePicker имеет свойства MaxDate и MinDate. Установите их, и вы можете контролировать диапазон дат, которые могут быть выбраны. В настоящее время в моей теме Windows XP with Windows Classic невыбираемые даты не отображаются серым цветом, но это может варьироваться в зависимости от операционной системы, темы и т. Д. Если вы абсолютно должны выделить их серым цветом, то вам придется подкласс DateTimePicker контролирует и выполняет (или часть) рисование самостоятельно.

1 голос
/ 02 декабря 2011

Вы можете установить минимальную и максимальную дату для C # WinForms DTP, так что если это то, что вы хотите сделать, то вы можете использовать переменные MinValue и MaxValue.Вы не можете выбирать блоки дат, которые не допускаются.Это то, что вы должны добавить сами.Есть два возможных способа сделать это:

  • Обработка события ValueChanged, затем проверка выбранной даты.
  • Наследование класса DTP и добавление туда дополнительных функций.
0 голосов
/ 02 декабря 2011

Вы можете установить ограничения даты следующим образом

dateTimePicker1.MinDate = DateTime.Today.AddDays(-2);
dateTimePicker1.MaxDate = DateTime.Today.AddDays(2);

В этом случае для пользователя будут доступны только 5 доступных дат, а остальные недоступны.Вы можете установить эти значения в выбранном событии selectedindex для поля со списком и ограничить его в соответствии с вашими требованиями / логикой.

0 голосов
/ 02 декабря 2011

Да, по крайней мере, MSDN так говорит.См. здесь .

...