none
Data do datetimePicker2 nao pode ser menor que a data do datetimePicker1 RRS feed

  • Pergunta

  • Olá pessoal,

    estou desenvolvendo uma aplicação C# e gostaria de fazer com que a hora definida no DateTimePicker dtpHora_Termino não possa ser menor do que a hora definida no DateTimePicker dtpHora_Inicio.

    Tentei dessa forma, mas obtenho erro:

            private void dtpHora_Termino_ValueChanged(object sender, EventArgs e)
            {
                dtpHora_Termino.MinDate = Convert.ToDateTime(dtpHora_Inicio.Value.TimeOfDay);
            }

    PrintScreen Datetimepicker: http://i.imgur.com/Giunf8D.png

    Printscreen erro: http://i.imgur.com/MzLCUBS.png


    grato
    • Editado GustB quarta-feira, 19 de outubro de 2016 22:56
    quarta-feira, 19 de outubro de 2016 22:51

Respostas

  • Já tentou fazer apenas isso?

    dtpHora_Termino.MinDate = dtpHora_Inicio.Value;

    If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer".

    Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".

    • Marcado como Resposta GustB quinta-feira, 20 de outubro de 2016 18:44
    quinta-feira, 20 de outubro de 2016 12:18
  • GustB, o que o Juliano falou está certo, você não precisa converter nada, porém digo mais; trocar o "MinDate" só não vai ser suficiente. Eu diria que você tem que trocar o Value e o MinDate pois se você trocar o MinDate e ele acabar sendo menor que o Value, vai disparar outra exceção.

    Melhor ainda: NÃO troque o MinDate! Verifique se o Value do dtpHora_Termino é menor que o dtpHora_Inicio no evento ValueChange; se sim defina a propriedade Value para ser igual uma a outra. O mesmo (porém invertido) no evento do dtpHora_Inicio. Lembre-se de suspender o evento antes de alterar o Value para não gerar um ciclo de alteração.

    • Marcado como Resposta GustB quinta-feira, 20 de outubro de 2016 18:45
    quinta-feira, 20 de outubro de 2016 14:29

Todas as Respostas

  • Já tentou fazer apenas isso?

    dtpHora_Termino.MinDate = dtpHora_Inicio.Value;

    If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer".

    Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".

    • Marcado como Resposta GustB quinta-feira, 20 de outubro de 2016 18:44
    quinta-feira, 20 de outubro de 2016 12:18
  • GustB, o que o Juliano falou está certo, você não precisa converter nada, porém digo mais; trocar o "MinDate" só não vai ser suficiente. Eu diria que você tem que trocar o Value e o MinDate pois se você trocar o MinDate e ele acabar sendo menor que o Value, vai disparar outra exceção.

    Melhor ainda: NÃO troque o MinDate! Verifique se o Value do dtpHora_Termino é menor que o dtpHora_Inicio no evento ValueChange; se sim defina a propriedade Value para ser igual uma a outra. O mesmo (porém invertido) no evento do dtpHora_Inicio. Lembre-se de suspender o evento antes de alterar o Value para não gerar um ciclo de alteração.

    • Marcado como Resposta GustB quinta-feira, 20 de outubro de 2016 18:45
    quinta-feira, 20 de outubro de 2016 14:29
  • Consegui resolver dessa forma:
            private void dtpHora_Inicio_ValueChanged(object sender, EventArgs e)
            {
                dtpHora_Termino.MinDate = dtpHora_Inicio.Value.AddMinutes(15);
                dtpHora_Termino.Value = dtpHora_Inicio.Value.AddHours(1);
    
            }
    
            private void dtpDataCand_Limite_ValueChanged(object sender, EventArgs e)
            {
                dtpData_Inicio.MinDate = dtpDataCand_Limite.Value.AddDays(1);
            }
    Obrigado Sammuel!
    • Editado GustB quinta-feira, 20 de outubro de 2016 18:47
    quinta-feira, 20 de outubro de 2016 18:46
  • Muito obrigado Juliano!
    quinta-feira, 20 de outubro de 2016 18:47