Domanda

spettacoli di controllo DateTimePicker comune di Microsoft shortdate 's in base alle impostazioni configurate Locale. computer del cliente è configurato con un anno ShortDateFormat 2 cifre (d/M/yy), quindi gli spettacoli DateTimePicker anni a 2 cifre:

alt text

Quando l'utente mette concentrano nel blocco anno della raccoglitrice datetime, punti Microsoft fuori la questione, e spettacoli l'intero anno a 4 cifre:

alt text

Ma poi l'utente, che vogliono entrare 1929 come un anno, i tipi di un anno a 2 cifre:

alt text

E poi quando scheda out sono confusi quando Windows interpreta i loro anni a 2 cifre come tra 1930 e 2029, e si presume essere 2029:

alt text

Il cliente ha una politica aziendale globale nel luogo che impone che le impostazioni internazionali di Windows sono configurati per anni a 2 cifre.

Così come una soluzione ho bisogno di forzare ogni controllo DateTimePicker ad utilizzare una data-formato personalizzato, utilizzando il pratico DateTime_SetFormat macro :

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

In questo modo, in modo che ora il DateTimePicker ora mostra sempre un anno a 4 cifre:

alt text

Il problema è che l'utente può comunque digitare un " non valida " anno a 2 cifre:

alt text

Quali Windows è ancora intpreting, secondo le regole, come 2029:

alt text

ho bisogno del selettore di data-ora di rifiutare anni a 2 cifre.

Se questo non può lavoro, poi ho intenzione di essere costretto a sostituire ogni DateTimePicker con 3 caselle di modifica:

22 6 29

Dove posso colorare numeri non validi rosso, e sottolineano l'immissione di dati non validi da parte dell'utente.

Come posso evitare che il DateTimePicker da accettare Y2K bug?

Nessuna soluzione corretta

Altri suggerimenti

Se si aggiunge lo stile della finestra DTS_APPCANPARSE, è possibile gestire il WM_NOTIFY: messaggio DTN_USERSTRING e analizzare la stringa da soli

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top