Вопрос

Microsoft's. DateTimePicker Общие контрольные шоу ШортСогласно настроенным параметрам локали. Компьютер клиента настроен с 2-значным годом ShortDateFormat (d/M/yy), поэтому DateTimePicker показывает 2-значные годы:

alt text

Когда пользователь ставит фокус в году Block of The DateTime Picker, Microsoft указывает на проблему и показывает полный 4-значный год:

alt text

Но потом пользователь, желающий ввести 1929 В течение года типы 2-значный год:

alt text

А затем, когда они вкладывают, они путают, когда Windows интерпретирует свои 2-значные годы как между 1930 и 2029, И предполагается, что это 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-значные годы.

Если это не может работать, я буду вынужден заменить каждый dateTimepicker с 3 редактировать поля:

22 6 29

Где я могу окрашивать недействительные числа красным и укажите неверную запись данных пользователем.

Как я могу помешать DateTimePicker принять ошибки Y2K?

Нет правильного решения

Другие советы

Если вы добавите окно DTS_AppCanSARSARSASARSE, вы можете обрабатывать сообщение WM_NOTIFY: DTN_USERSTRING и проанализируйте свою строку

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top