这会在运行时生成错误:
dateTimePicker.Value = DateTime.MaxValue;
答案 0 :(得分:7)
你不能。
DateTimePicker支持的最长日期为DateTimePicker.MaximumDateTime
,即12/31/9998; DateTime.MaxValue
是12/31/9999 23:59:59,这是一年零一天。
您可以使用DateTimePicker.MaximumDateTime
代替DateTime.MaxValue
吗?
答案 1 :(得分:3)
您需要使用DateTimePicker.MaximumDateTime属性。日期时间选择器允许的最大值是31/12/9998,由DateTimePicker.MaximumDateTime表示。鉴于DateTime.MaxValue的价值是31/12/9999。
答案 2 :(得分:2)
是的,你可以,但它很脏(使用它需要你自担风险)。基本上,它使用DateTime对象中的MaxValue覆盖DateTimePicker中定义的MaxValue。
将此代码粘贴到Main(或启动期间运行的任何方法):
var dtpType = typeof(DateTimePicker);
var field = dtpType.GetField("MaxDateTime", BindingFlags.Public | BindingFlags.Static);
if (field != null)
{
field.SetValue(new DateTimePicker(), DateTime.MaxValue);
}
答案 3 :(得分:0)
也许这很有帮助:
这个常数的值是 相当于23:59:59.9999999, 9999年12月31日,恰好一个 00:00:00之前100纳秒的时间, 1月1日,10000。
一些日历,例如 UmAlQuraCalendar,支持上层 日期范围早于 MaxValue的。在这些情况下,试图 在变量中访问MaxValue 分配或格式化和解析 操作可以抛出一个 ArgumentOutOfRangeException。宁 而不是检索的价值 DateTime .. ::。MaxValue,你可以 检索指定的值 文化的最新有效日期值来自 该 System.Globalization.CultureInfo.DateTimeFormat.Calendar.MaxSupportedDateTime 属性。
从msdn
公然抄袭