微软的
DateTimePicker
通用控件显示
短日期
根据配置的区域设置。客户的计算机配置为2位数的年份短日期格式(
d/M/yy
),因此DateTimePicker显示两位数的年份:
当用户将焦点放在datetime选择器的year块中时,Microsoft会指出问题,并显示完整的4位数年份:
但是用户,想要进入
1929
作为一年,请键入2位数的年份:
当他们退出时,当Windows将他们的2位数年份解释为介于
1930
和
2029
,假设为2029年:
该客户已制定了一项全球公司策略,要求将Windows区域设置配置为2位数的年份。
所以作为解决办法我需要
日期输入框
控件使用自定义日期格式,使用
DateTime_SetFormat
macro
:
DateTime_SetFormat(hwnd_DateOfEventPicker, "d/M/yyyy");
这有帮助,所以现在
日期输入框
现在总是显示4位数的年份:
问题是用户仍然可以键入“
无效的
“2位数年份:
根据规定,2029年,哪些窗口仍在计算:
我需要日期时间选择器来拒绝2位数的年份。
如果这不起作用,那么我将被迫用3个编辑框替换每个DateTimePicker:
二十二
六
二十九
在这里我可以将无效数字涂成红色,并指出用户输入的无效数据。
如何防止DateTimePicker接受y2k错误?