Win32:如何防止DateTimePicker接受2位数年?
-
29-09-2019 - |
题
微软的 DateTimePicker
共同控制显示 缩短根据配置的语言环境设置。客户的计算机配置了2位年份的ShortdateFormat(d/M/yy
),因此DateTimePicker显示了2位数年:
当用户将重点放在DateTime Picker的一年中时,Microsoft指出了问题,并显示了整个4位年份:
但是后来用户想输入 1929
一年,类型2位年:
然后,当他们拿出标签时 1930
和 2029
, ,假设是2029年:
客户有一项全球公司政策,该政策规定将Windows区域设置配置为2位数年。
因此,作为解决方法,我需要强迫每一个 DateTimePicker
控制使用自定义日期格式,使用方便 DateTime_SetFormat
宏:
DateTime_SetFormat(hwnd_DateOfEventPicker, "d/M/yyyy");
这有帮助,现在 DateTimePicker
现在总是显示4位年份:
问题是用户仍然可以输入“无效的“ 2位年:
根据规则,哪些窗口仍在插入2029年:
我需要日期的选择器来拒绝2位数年。
如果这无法正常工作,那么我将被迫用3个编辑框替换每个DateTimePicker:
22 6 29
我可以在其中涂上无效的数字,并指出用户无效的数据输入。
如何防止DateTimePicker接受Y2K错误?
没有正确的解决方案
其他提示
如果添加dts_appcanparse窗口样式,则可以处理wm_notify:dtn_userstring消息并自己解析字符串
不隶属于 StackOverflow