none
Datagridview con columnas horas RRS feed

  • Pregunta

  • Hola, buenos días, tengo el siguiente datagridview:

    En el tengo 2 columnas combobox, una HoraInicio y HoraFin, deseo obtener la diferencia entre horas entre cada fila. Ejemplo:

    HORA INICIO      HORA FIN       RESULTADO

    13:00                   15:00               2:00

    17:00                   20:00               3:00

    También deseo poder validar si se ingresa como HoraInicio 13:00, que la HoraFin debe ser superior a la HoraInicio.

    Adicionalmente, tengo unos botones con su propiedad enabled = false y deseo que se habiliten cuando se haya seleccionado la HoraInicio y la HoraFin de los combobox y por lo menos se haya seleccionado una casilla de los checkbox que se encuentran dentro del mismo datagridview por cada fila.

    Cualquier ayuda estaré muy agradecido.


    • Editado JCORBETTO miércoles, 13 de diciembre de 2017 12:32 editar
    miércoles, 13 de diciembre de 2017 12:29

Respuestas

  • hola

    >>deseo poder validar si se ingresa como HoraInicio 13:00, que la HoraFin debe ser superior a la HoraInicio, hay algun evento que pueda validar eso.

    no recomiendo editar en el grid cuando hay validaciones complejas, seria mejor editar en un form popup

    el problea aqui es que evento utilizar, podria ser el CellValidating

    How to: Validate Data in the Windows Forms DataGridView Control

    en este evento tomarias la row que lanza el evento y tomar los valores de las celdas para ver si pasan la validacion

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Propuesto como respuesta Juan MondragónModerator miércoles, 13 de diciembre de 2017 16:38
    • Marcado como respuesta JCORBETTO miércoles, 13 de diciembre de 2017 16:49
    miércoles, 13 de diciembre de 2017 13:24
  • hola

    >>deseo obtener la diferencia entre horas entre cada fila.

    podrias convertir las horas a datetime para poder restarla

    DateTime d1 = Convert.DataTime("13:00");
    DateTime d2 = Convert.DataTime("15:00");
    
    TimeSpan t = d2.Subtract(d1);
    
    string horas = t.ToString("hh:mm");


    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta JCORBETTO miércoles, 13 de diciembre de 2017 16:49
    miércoles, 13 de diciembre de 2017 13:00

Todas las respuestas

  • hola

    >>deseo obtener la diferencia entre horas entre cada fila.

    podrias convertir las horas a datetime para poder restarla

    DateTime d1 = Convert.DataTime("13:00");
    DateTime d2 = Convert.DataTime("15:00");
    
    TimeSpan t = d2.Subtract(d1);
    
    string horas = t.ToString("hh:mm");


    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta JCORBETTO miércoles, 13 de diciembre de 2017 16:49
    miércoles, 13 de diciembre de 2017 13:00
  • Hola Leandro, gracias por responder, deseo poder validar si se ingresa como HoraInicio 13:00, que la HoraFin debe ser superior a la HoraInicio, hay algun evento que pueda validar eso.

    Adicionalmente, tengo unos botones con su propiedad enabled = false y deseo que se habiliten cuando se haya seleccionado la HoraInicio y la HoraFin de los combobox y por lo menos se haya seleccionado una casilla de los checkbox que se encuentran dentro del mismo datagridview por cada fila.

    miércoles, 13 de diciembre de 2017 13:08
  • hola

    >>deseo poder validar si se ingresa como HoraInicio 13:00, que la HoraFin debe ser superior a la HoraInicio, hay algun evento que pueda validar eso.

    no recomiendo editar en el grid cuando hay validaciones complejas, seria mejor editar en un form popup

    el problea aqui es que evento utilizar, podria ser el CellValidating

    How to: Validate Data in the Windows Forms DataGridView Control

    en este evento tomarias la row que lanza el evento y tomar los valores de las celdas para ver si pasan la validacion

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Propuesto como respuesta Juan MondragónModerator miércoles, 13 de diciembre de 2017 16:38
    • Marcado como respuesta JCORBETTO miércoles, 13 de diciembre de 2017 16:49
    miércoles, 13 de diciembre de 2017 13:24