Question

montre de contrôle commun de DateTimePicker Microsoft shortdate de fonction des paramètres configurés Locale. L'ordinateur du client est configuré avec une ShortDateFormat année à 2 chiffres (d/M/yy), de sorte que les DateTimePicker spectacles années à 2 chiffres:

Lorsque les puts utilisateur se concentrent dans le bloc de l'année du sélecteur de datetime, les points Microsoft sur la question, et montre la pleine année à 4 chiffres:

Mais l'utilisateur, voulant entrer 1929 comme une année, types une année à 2 chiffres:

Et puis quand ils onglet sur ils sont confus lorsque Windows interprète comme étant entre 1930 et 2029, et il est supposé leurs années à 2 chiffres comme 2029:

Le client dispose d'une politique globale de l'entreprise en place qui dicte que les paramètres régionaux de Windows être configurés pour les années à 2 chiffres.

Afin de contourner ce problème que je dois forcer chaque contrôle de DateTimePicker à utiliser une date-format personnalisé, en utilisant la pratique DateTime_SetFormat macro :

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

Cette aide, de sorte que maintenant l'DateTimePicker maintenant montre toujours une année à 4 chiffres:

Le problème est que l'utilisateur peut toujours taper dans un " invalide " 2 chiffres année:

Quel Windows est intpreting encore, selon les règles, comme 2029:

i besoin le sélecteur de date-heure de rejeter années à 2 chiffres.

Si cela ne peut pas fonctionner, alors je vais être obligé de remplacer tous les DateTimePicker avec 3 boîtes d'édition:

22 6 29

Où je peux colorer les numéros invalides rouge, et le point sur l'entrée de données non valide par l'utilisateur.

Comment puis-je empêcher le DateTimePicker d'accepter y2k des bugs?

Pas de solution correcte

Autres conseils

Si vous ajoutez le style de fenêtre DTS_APPCANPARSE, vous pouvez gérer le WM_NOTIFY: message DTN_USERSTRING et analyser la chaîne vous

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top