delphi – 为什么TDateTimePicker不让我导航到二月?
发布时间:2020-12-15 09:49:14 所属栏目:大数据 来源:网络整理
导读:我在我的D7应用程序上使用TDateTimePicker,具有以下属性: Format = 'MMM-yyyy'DateMode = dmUpDown 当我尝试使用dt1.DateTime:=现在设置当前日期时间时,它会正确设置时间和日期,但是当我尝试导航月份时它会??显示异常.特别是,我不能在3月份以下流通. 是什
我在我的D7应用程序上使用TDateTimePicker,具有以下属性:
Format = 'MMM-yyyy' DateMode = dmUpDown 当我尝试使用dt1.DateTime:=现在设置当前日期时间时,它会正确设置时间和日期,但是当我尝试导航月份时它会??显示异常.特别是,我不能在3月份以下流通. 是什么导致了这个问题? 解决方法
问题是使用当前日期初始化日期时间选择器控件.这包括一个月中某个月无效的日子.
所以,为了清楚起见,你在2013年1月29日问这个问题.当你点击向上/向下控制转到2月时,控制无法执行更改,因为2013年2月29日没有. 对于任何发现难以复制的未来访问者,这是展示问题所需的代码: DateTimePicker1.Format := 'MMM-yyyy'; DateTimePicker1.DateMode := dmUpDown; DateTimePicker1.DateTime := EncodeDateTime(2013,1,29,0); 解决该问题的简单方法是确保控件的DateTime属性适用于月初.您可以通过在初始化控件时执行此代码来实现此目的: DateTimePicker1.DateTime := StartOfTheMonth(DateTimePicker1.DateTime); 或者如果你想更明确的话: DateTimePicker1.DateTime := StartOfTheMonth(Date); StartOfTheMonth辅助函数位于DateUtils单元中. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |