Pregunta

programas de control DateTimePicker común de Microsoft shortdate 's de acuerdo con la configuración regional configurados. el ordenador del cliente está configurado con una ShortDateFormat año de 2 dígitos (d/M/yy), por lo que los programas de DateTimePicker año de 2 dígitos:

alt text

Cuando los usuarios se centran pone en el bloque años del selector de fecha y hora, los puntos de Microsoft fuera el tema, y ??espectáculos de todo el año de 4 dígitos:

alt text

Pero entonces el usuario, con ganas de entrar en 1929 como un año, los tipos de un año de 2 dígitos:

alt text

Y luego, cuando se salta fuera que están confundidos cuando Windows interpreta sus años de 2 dígitos como entre 1930 y 2029, y se supone que ser 2029:

alt text

El cliente tiene una política corporativa global en el lugar que dicta que la configuración regional de Windows pueden configurar por años de 2 dígitos.

Así como una solución que necesito para obligar a todos los controles DateTimePicker utilizar un formato de fecha personalizada, utilizando la mano DateTime_SetFormat macro :

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

Esto ayuda, por lo que ahora el DateTimePicker ahora siempre muestra un año de 4 dígitos:

alt text

El problema es que el usuario puede escribir en un " no válido " El año de 2 dígitos:

texto alternativo ??

¿Qué Windows sigue siendo intpreting, de acuerdo con las reglas, como 2029:

texto alternativo ??

necesito el selector de fecha y hora de rechazar año de 2 dígitos.

Si esto no puede trabajar, entonces voy a ser obligado a reemplazar cada DateTimePicker con 3 cuadros de edición:

22 6 29

¿Dónde puedo colorear números no válidos rojo, y el punto de la entrada de datos no válido por el usuario.

¿Cómo puedo evitar que el DateTimePicker de aceptar errores Y2K?

No hay solución correcta

Otros consejos

Si se agrega el estilo de ventana DTS_APPCANPARSE, puede manejar el WM_NOTIFY: Mensaje de DTN_USERSTRING y analizar la cadena de sí mismo

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top