2015-12-17 3 views
0

DatePicker позволяет выбрать дату.C# DatePicker Дата подтверждения

UPDATE: Я хотел был бы заставить DatePicker разрешить только запись как dd/mm/yyyy. Итак, если пользователь пытается ввести «21 декабря 2015 года», это не позволит.

Я в .NET Framework 4.5

+1

'строка [] F = {«дд/мм/year "};' <- 'yyyy' вместо' year'. В любом случае, 'DateTime' не имеет никакого формата, вы должны думать об этом представлении. –

+3

Даты не имеют формата. Как вы представляете их на дисплее, что дает им «формат». Если вы получаете дату из DateTimePicker, не пытайтесь «преобразовать» ее в какой-то «формат». Используйте его, и когда вам нужно отобразить его, используйте строку формата (IE: _.... ToString («MM/dd/yyyy»); _) – Steve

+0

@Steve Я не пытаюсь представить их или преобразовать в какой-либо другой формат , Все, что я хочу, это DatePicker, чтобы разрешить запись только в формате dd/mm/yyyy и убедиться, что дата введена только в текущем году. Спасибо – pixel

ответ

0

Используйте следующий код:

DateTimePicker.Format = DateTimePickerFormat.Custom 
DateTimePicker.CustomFormat = "dd-MM-yyyy" 
+0

Я использую DatePicker, и я не могу установить ничего, что вы указали – pixel

+0

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

1

Ловить случаи, когда текст набран в DatePicker не допустимый формат даты, вы должны обрабатывать DateValidationError event. Вы получите код System.FormatException, если формат неприемлем.

Чтобы ограничить раскрывающийся календарь до текущего года, вы можете установить свойства DisplayDateStart и DisplayDateEnd - но это не мешает вам вводить другие даты в текстовое поле.

MyDatePicker.DisplayDateStart = new DateTime(DateTime.Now.Year, 1, 1); 
MyDatePicker.DisplayDateEnd = new DateTime(DateTime.Now.Year, 12, 31); 

Чтобы ограничить DatePicker на текущий год установить BlackoutDates property исключить все, кроме текущего года даты. Например:

// Exclude all dates before the start of this year 
MyDatePicker.BlackoutDates.Add(
    new CalendarDateRange(DateTime.MinValue, new DateTime(DateTime.Now.Year - 1, 12, 31))); 
// Exclude all dates after the end of this year 
MyDatePicker.BlackoutDates.Add(
    new CalendarDateRange(new DateTime(DateTime.Now.Year + 1, 1, 1), DateTime.MaxValue)); 

в надлежащей отформатированную дату, которая попадает в один из диапазонов дат затемнения будет вызвать ArgumentOutOfRangeException быть переданы в обработчик события DateValidationError

Смежные вопросы