DateTimePicker: elige fecha y hora

¿Es posible usar DateTimePicker (Winforms) para elegir tanto la fecha como la hora (en el menú desplegable)? ¿Cómo se cambia la visualización personalizada del valor elegido? Además, ¿es posible habilitar al usuario para que escriba la fecha / hora manualmente?

Establezca el Formato en Personalizado y luego especifique el formato:

dateTimePicker1.Format = DateTimePickerFormat.Custom; dateTimePicker1.CustomFormat = "MM/dd/yyyy hh:mm:ss"; 

o como quieras diseñarlo. Luego puede escribir directamente la fecha / hora. Si usa MMM, necesitará usar el valor numérico del mes para la entrada, a menos que escriba algún código para eso (por ejemplo, 5 resultados en mayo)

No sé sobre el selector de fecha y hora juntos. Suena como un control personalizado para mí.

Lo mejor es usar dos DateTimePickers para el Job One será el predeterminado para la sección de fecha y el segundo DateTimePicker para el período de tiempo. Formatee el segundo DateTimePicker de la siguiente manera.

  timePortionDateTimePicker.Format = DateTimePickerFormat.Time; timePortionDateTimePicker.ShowUpDown = true; 

Los dos deberían verse así después de capturarlos

Dos recolectores de fecha y hora

Para obtener el DateTime de ambos controles, use el siguiente código

 DateTime myDate = datePortionDateTimePicker.Value.Date + timePortionDateTimePicker.Value.TimeOfDay; 

Para asignar el DateTime a ambos controles, use el siguiente código

 datePortionDateTimePicker.Value = myDate.Date; timePortionDateTimePicker.Value = myDate.TimeOfDay; 

Desafortunadamente, este es uno de los muchos nombres incorrectos en el marco, o en el mejor de los casos, una violación de SRP.

Para usar DateTimePicker para las horas, configure la propiedad Format en Time o Custom (Use Custom si desea controlar el formato de la hora con la propiedad CustomFormat). A continuación, establezca la propiedad ShowUpDown en verdadero.

Aunque un usuario puede establecer la fecha y la hora juntas de forma manual, no pueden usar la GUI para establecer ambas.

DateTime Picker se puede utilizar para elegir tanto la fecha como la hora, por eso se llama ‘Selector de fecha y hora’. Puede establecer la propiedad ” Formato ” en ” Personalizar ” y establecer la combinación de diferentes especificadores de formato para representar / elegir la fecha / hora en diferentes formatos en la propiedad ” Formato personalizado “. Sin embargo, si desea cambiar la fecha, entonces se puede usar el calendario emergente, mientras que en el caso de la selección de tiempo (en el mismo control, está obligado a usar las teclas arriba / abajo para cambiar los valores.

Por ejemplo, un formato personalizado ” ddddd, MMMM dd, aaaa hh: mm: ss tt ” le dará un resultado como este: ” jueves, 20 de agosto de 2009 02:55:23 PM “.

Puede jugar con diferentes combinaciones de especificadores de formato para satisfacer su necesidad, por ejemplo, MMMM dará ” agosto ” mientras que MM dará ” agosto

Vaya a Properties de dateTimePicker en Visual Studio y establezca Format en Custom . En CustomFormat ingrese su formato. En mi caso utilicé MMMMdd, yyyy | hh:mm MMMMdd, yyyy | hh:mm

enter image description here
dateTimePickerProperties

Puede lograr que muestre el tiempo . De eso, probablemente tendrá que tener dos controles (una fecha, una vez) para lograr lo que desea.

Me temo que el control DateTimePicker no tiene la capacidad de hacer esas cosas. Es un control bastante básico (¡y frustrante!). Su mejor opción puede ser encontrar un control de terceros que haga lo que quiera.

Para la opción de escribir la fecha y la hora manualmente, podría comstackr un componente personalizado con una combinación TextBox / DateTimePicker para lograr esto, y podría funcionar razonablemente bien, si los controles de terceros no son una opción.