2009-10-25 102 views

回答

7

你不能。

DateTimePicker支持的最大日期爲DateTimePicker.MaximumDateTime,即12/31/9998; DateTime.MaxValue是12/31/9999 23:59:59,這是一年和一天後。

你能用那個DateTimePicker.MaximumDateTime代替DateTime.MaxValue嗎?

+1

當然,我現在可以說,我知道:) – programmernovice 2009-10-25 13:40:09

+3

任何想法,爲什麼這些有什麼不同?我在Google上找不到任何解釋。 – MusiGenesis 2009-10-25 13:57:30

+1

我不知道;我快速瀏覽了源代碼,發現沒有明顯的原因。 – SLaks 2009-10-25 14:14:41

1

也許,這是有幫助的:

此常數的值是 相當於23:59:59.9999999, 12月31日,9999,整整一個 00:00:00前100納秒打勾, 1月1日,10000

某些日曆,如 UmAlQuraCalendar,支持是早於 MaxValue的上部 時間範圍。在這些情況下,嘗試訪問 變量 中的MaxValue賦值或格式和解析 操作可能會拋出 ArgumentOutOfRangeException。而是 不是檢索 的DateTime .. ::。MaxValue的值,你可以從 的 System.Globalization.CultureInfo.DateTimeFormat.Calendar.MaxSupportedDateTime 屬性檢索指定 文化的最新有效日期值的值。

公然從msdn

+1

爲什麼這會有幫助? – SLaks 2009-10-25 13:21:37

2

是可以複製的,但它是相當髒(您自己的風險使用它)。基本上,它使用DateTime對象中的MaxValue覆蓋DateTimePicker中定義的MaxValue。

將此代碼粘貼到主(或任何方法啓動時運行):

var dtpType = typeof(DateTimePicker); 
var field = dtpType.GetField("MaxDateTime", BindingFlags.Public | BindingFlags.Static); 
if (field != null) 
{ 
    field.SetValue(new DateTimePicker(), DateTime.MaxValue); 
} 
相關問題