2009-10-25 14 views

Odpowiedz

7

Nie możesz.

Maksymalna data obsługiwana przez DateTimePicker to DateTimePicker.MaximumDateTime, czyli 12/31/9998; DateTime.MaxValue to 12/31/9999 23:59:59, czyli jeden rok i jeden dzień później.

Czy możesz użyć tego DateTimePicker.MaximumDateTime zamiast DateTime.MaxValue?

+1

pewien, że mogę teraz o tym nie wiem :) – programmernovice

+3

Każdy pomysł, dlaczego są one różne? Nie mogłem znaleźć żadnego wyjaśnienia tego w Google. – MusiGenesis

+1

Nie wiem; Przejrzałem źródło i nie znalazłem żadnego oczywistego powodu. – SLaks

1

Być może jest to pomocne:

Wartość tej stałej jest równowartość 23: 59: 59.9999999, 31 grudnia 9999, dokładnie jeden 100-nanosekundy kleszczy przed 00:00:00, 1 stycznia 10000.

Niektóre kalendarze, takie jak UmAlQuraCalendar wspierać górny zakres dat, który jest wcześniej niż MAXVALUE. W takich przypadkach, próbując uzyskać dostęp do wartości MaxValue w zmiennej , operacje mogą wywoływać wyjątek ArgumentOutOfRangeExentura . Raczej niż zdobycie wartość DateTime .. ::. MAXVALUE można pobrać wartość ostatnio ważnej wartości data określonym Culture z System.Globalization.CultureInfo.DateTimeFormat.Calendar.MaxSupportedDateTime nieruchomości.

rażąco kopiowane z msdn

+1

Dlaczego byłoby to pomocne? – SLaks

2

Tak można, ale jest to dość brudny (użyj go na własne ryzyko). Zasadniczo nadpisuje MaxValue zdefiniowane w DateTimePicker z MaxValue z obiektu DateTime.

Wklej ten kod do głównego (lub dowolną metodę uruchamiania podczas uruchamiania):

var dtpType = typeof(DateTimePicker); 
var field = dtpType.GetField("MaxDateTime", BindingFlags.Public | BindingFlags.Static); 
if (field != null) 
{ 
    field.SetValue(new DateTimePicker(), DateTime.MaxValue); 
} 
Powiązane problemy