Winforms .net Datepicker non rispetta il formato 24 ore?

Ho un timepicker (datetimepicker) il formato HH:mm – l’orologio di 24 ore. Visualizza come 00 alle 24 00 a 59 e non permetterà che i valori non validi per essere inseriti. Questo è esattamente quello che voglio.

Tuttavia, restituisce valori di 12 ore con AM e PM indicatori. Questo significa che quando l’utente immette “00” viene restituito come “12” e “14” è restituito come “2:00”. Questo NON è quello che voglio.

Posso testare e convertire questi indesiderati valori di ritorno, ma sicuramente(?) c’è un modo più elegante di convincere questa cosa mi dia i valori che voglio piuttosto che il controllo di queste condizioni particolari? Alcune proprietà semplice che ho trascurato, forse?

  • Se si utilizza un Value proprietà del datetimepicker? Deve restituire un valore di tipo DateTime-valore digitato.
  • Sì, sto leggendo il valore.ToString(). Non ero a conoscenza che ci fosse qualsiasi altra proprietà a leggere per OTTENERE il valore…
InformationsquelleAutor mickeyf | 2010-06-24



2 Replies
  1. 4

    Quando si legge il valore, è necessario utilizzare:

    string value = dateTimePicker.Value.ToString("HH:mm");

    Se si utilizzano solo Value.ToString(), si otterrà il valore di default (12 ore) la stringa di formattazione.

    • Questo è esattamente quello che sto facendo (cioè, il valore.ToString (), piuttosto che di valore.ToString(formattazione). Avrei pensato che l’impostazione del formato per il controllo sarebbe avere già fatto questo per me, ma a quanto pare non. Grazie, proverò questo, quando ho tornare al lavoro il lunedì mattina
    • ToString() sufficiente utilizzare l’attuale cultura indipendenti per il controllo, dal momento che è solo la chiamata di tipo DateTime.ToString. Stai diventando una DateTime esempio quando si chiama selezione.Valore. È possibile ignorare la cultura corrente e impostare hte attuale cultura 24time e il metodo ToString() darà il comportamento che ci si aspetta.
    • Grazie – questo è esattamente il problema si risolve. A quanto pare il Formato di proprietà per i mezzi di controllo “Rigorosamente il formato di visualizzazione per il controllo di se stesso”, che è abbastanza ragionevoli, ma non è stato come ci stavo pensando.
  2. 4

    Come ti entrare in possesso di entrata nel tempo, il valore di un controllo?

    Se si dispone di un DateTimePicker di controllo e impostare il suo Formato proprietà Custom, e la sua CustomFormat proprietà HH:mm, si ottiene un formato di 24 ore di tempo (come DateTime tipo) quando si legge il Valore proprietà.

    EDIT: Se si utilizza il ToString() valore (come si dice nel commento di cui sopra), questo sarà utilizzando l’attuale localizzazione impostazioni. Si sarebbe molto meglio di leggere i valori dal DateTime (ie. DateTime.Hour DateTime.Minute).

Lascia un commento