Pregunta

Estoy construyendo un formulario con winforms - y debería añadir un punto de vista y el valor lapso de tiempo editable. Que controla que funciona mejor para esto?

Un control de edición normal muestra el valor correctamente -> pero no es muy agradable para el cambio de los valores

en el selector normal de fecha y hora no funciona

el control de edición de máscaras no tienen ninguna máscara estándar para este

¿Alguien tiene una buena idea para un control para esta tarea?

¿Fue útil?

Solución 4

En otro proyecto que tenía que editar un lapso de tiempo demasiado.

He finalmente usado 3 numérico arriba / abajo controles: los primeros controles el total de horas, el segundo de los minutos y la tercera los segundos

.
//Setting the values
durationHours.Value = (Decimal)Math.Floor (data.TotalHours);
durationMin.Value = data.Minutes;
durationSeconds.Value = data.Seconds;

//Getting the values
data = new TimeSpan((int)durationHours.Value, (int)durationMin.Value, (int)durationSeconds.Value);

Otros consejos

he construido uno que tenía un cuadro de texto junto con un cuadro combinado para elegir las unidades. El control de usuario tenía ajustes de rango (valor + -) y (unidades de tiempo). Sobre la base de las unidades recogido, el cuadro de texto se varió comprobado -. Por ejemplo, 1-7 días podrían ser válidos, pero si las unidades eran minutos, 1-60 minutos podría ser mejor

He hecho combinaciones de dos ComboBoxes un NumericUpDown también.

Si necesita períodos de tiempo que son cosas como 3 días 4 horas 6 minutos, probablemente optar por un control de usuario con el cuadro de texto enmascarado y la zona de control de las partes.

Por lo general, opto por la primera, sin embargo.

Sólo mis dos centavos.

Utilice la TimeSpan ayudante , que incluye un control simple (que no se documentó demasiado bien cuando solía IT).

Utilice un cuadro de texto normal, junto con un control del proveedor de error que comprueba el valor utilizando TimeSpan.TryParse () y un texto de ayuda para sugerir qué tipo de datos que está esperando.

Si lo desea, puede combinar todo esto en un solo control personalizado, también.

Si su mirada en busca de alguna código de trabajo en el siguiente enlace.

Esta entrada de blog proporciona el código fuente de un control de usuario WPF para seleccionar un intervalo de tiempo.

También intente esto TimeSpanPicker

Si usted no necesita quiere permitir más de 24 horas y no desea especificar milisegundos Creo que el selector de DateTime funciona mejor, sobre todo si se crea un control de usuario para que sea un selector de TimeSpan.

Lo bueno es que se puede UPDOWN las horas / minutos / segundos. Evita que automáticamente le permite establecer un tiempo de más de 60 minutos / segundos. La desventaja:. No hay milisegundos y sin tiempos de más de un día

En el estudio desarrollador agregar un nuevo control de usuario: TimePicker. En el control de usuario poner un selector de DateTime. Cambiar las propiedades:

  • Formato: Tiempo; esto hace que sólo se ve una vez (con segundos) hasta las 24 horas
  • ShowUpDown: Es cierto: esto hace que no se puede abrir un calendario. Vas a tener un desplegable para las horas / minutos / segundos.

Se utiliza el formato de hora localizada. Si desea un formato de tiempo específico utilizar el formato de hora personalizado.

Reaccionar sobre el evento validado para leer el valor como valor DateTime y restar si desde la medianoche al comienzo del mismo día. El resultado será un intervalo de tiempo. Devolver este valor en Valug.Get. Value.Set:. Añadir la DateTime actual de la medianoche a la TimeSpan ajustar

Si necesita más de 24 horas, o desea agregar milisegundos, añadir un cuadro de texto y utilizar la validación y TryParse. Esto incluso permitir que los usuarios utilizan las garrapatas en lugar de un notitaion tiempo. Si no validados, utilizar una punta de la herramienta para mostrar el error.

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