微软的 DateTimePicker 共同控制显示 缩短根据配置的语言环境设置。客户的计算机配置了2位年份的ShortdateFormat(d/M/yy),因此DateTimePicker显示了2位数年:

alt text

当用户将重点放在DateTime Picker的一年中时,Microsoft指出了问题,并显示了整个4位年份:

alt text

但是后来用户想输入 1929 一年,类型2位年:

alt text

然后,当他们拿出标签时 19302029, ,假设是2029年:

alt text

客户有一项全球公司政策,该政策规定将Windows区域设置配置为2位数年。

因此,作为解决方法,我需要强迫每一个 DateTimePicker 控制使用自定义日期格式,使用方便 DateTime_SetFormat:

DateTime_SetFormat(hwnd_DateOfEventPicker, "d/M/yyyy");

这有帮助,现在 DateTimePicker 现在总是显示4位年份:

alt text

问题是用户仍然可以输入“无效的“ 2位年:

alt text

根据规则,哪些窗口仍在插入2029年:

alt text

我需要日期的选择器来拒绝2位数年。

如果这无法正常工作,那么我将被迫用3个编辑框替换每个DateTimePicker:

22 6 29

我可以在其中涂上无效的数字,并指出用户无效的数据输入。

如何防止DateTimePicker接受Y2K错误?

没有正确的解决方案

其他提示

如果添加dts_appcanparse窗口样式,则可以处理wm_notify:dtn_userstring消息并自己解析字符串

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top