DateTimePicker:如何在1753年之前设置MinDate

时间:2016-02-13 17:32:06

标签: c# winforms datetimepicker

我正在构建genealogical tree app,我需要超过此日期。我更喜欢DateTimePicker而不是TextBox + text-date转换。

有没有规避这个限制?

1 个答案:

答案 0 :(得分:2)

不幸的是,DateTimePicker控件不支持1753年1月1日之前的日期。这最终归因于Date and Time PickerMonth CalendarComCtl32 Common Controls library控件的限制。这些控制不支持1753年之前的日期,因为这是格里高利和朱利安日历之间的分界线。由于控件基于公历,因此它们不会计算与朱利安历法一致的日期。

这会影响.NET代码的原因是因为DateTimePicker类是较低级comctl32控件的包装器。相关代码为here

可悲的是,这个限制也会延续到the Mono implementation of the control,所以即使您在Linux或Mac上通过Mono使用DateTimePicker,它仍然不允许在此之前的日期,尽管缺少{ {1}}在操作系统中。

看起来Telerik有their own DateTimePicker control。这可能值得调查。但是,在对文档进行快速扫描之后,我看不出它的限制是什么,如果有的话。