Partilhar via


Exibição de datas: Usando MonthCalendar e DateTimePicker controles

Nesta lição, você aprenderá como exibir a data em um Windows Form.Você também aprenderá a executar uma ação quando um usuário seleciona uma data.

Quando você usa um controle que exibe um calendário, é fácil para os usuários selecionar uma data.O uso desses controles também garante que a data está formatada corretamente.Você pode exibir um calendário com um controle MonthCalendar ou um controle DateTimePicker.

O controle MonthCalendar permite que você exiba um calendário para um ou mais meses.Os usuários podem selecionar uma única data ou um intervalo de datas se você usar esse controle.

O controle DateTimePicker possui dois estados.Por padrão, o controle DateTimePicker aparece como um caixa de texto junto com uma seta suspensa.Quando o usuário clica a seta suspensa, aparece um calendário.O usuário pode selecionar somente uma única data se você usar esse controle.O controleDateTimePicker também permite que você exiba horas, em vez de datas.

O processo usado para recuperar uma data desses controles varia dependendo do controle usado.Use a propriedade Start para um controle MonthCalendar e use a propriedade Value para um controle DateTimePicker.

Tente-o!

Para recuperar uma data e exibi-la em um rótulo.

  1. On the Arquivo menu, clicar Novo projeto.

    A caixa de diálogo New Project será exibida.

  2. Clique em Windows Forms Application e em seguida, clique em OK .

  3. Adicionar um Rótulo controle ao formulário, deixando o nome padrão Label1.

  4. Remova o texto da propriedade Textdo controle Label.

  5. Adicionar um MonthCalendar controle ao formulário, deixando o nome padrão MonthCalendar1.

  6. Clique duas vezes no controle MonthCalendar para entrar no manipulador de eventos padrão do Code Editor.

  7. No manipulador de eventos MonthCalendar1_DateChanged, adicione o código a seguir para adicionar itens à lista.

    Me.Label1.Text = CStr(Me.MonthCalendar1.SelectionRange.Start)
    
  8. Retornar ao modo de exibição do Designer e adicionar um DateTimePicker controle ao formulário, deixando o nome padrão DateTimePicker1.

  9. Clique duas vezes no controle MonthCalendar para entrar no manipulador de eventos padrão do Code Editor.

  10. No manipulador de eventos DateTimePicker_ValueChanged, adicione o código a seguir para adicionar itens à lista.

    Me.Label1.Text = CStr(Me.DateTimePicker1.Value)
    
  11. Pressione F5 para executar a página.

  12. Quando o formulário for exibida, clique em uma data no controle MonthCalendar e verifique se a data é exibida no rotular.

  13. Clique na seta suspensa do controle DateTimePicker e selecione uma data.

    A data e hora são exibidas no rótulo.

  14. Feche o programa.

Recuperando várias datas

Você pode recuperar um intervalo de datas que está selecionado em um controle MonthCalendar usando as propriedades Start e End de SelectionRange.Por padrão, o número máximo de dias que pode ser selecionado é sete, mas você pode alterar isso pela configuração de propriedade MaxSelectionCount.Você pode determinar se um intervalo está selecionado, verificando se as datas de início e término são iguais.

Para recuperar um intervalo de datas de um controle de calendário mensal

  1. Altere o código no manipulador de eventos MonthCalendar1_DateChanged para o código a seguir.Esse código define o número máximo de dias (duas semanas) que pode ser selecionado no controle.Ele exibe a data de início no rótulo se apenas um dia é selecionado, mas ela exibe um intervalo de datas quando um intervalo está selecionado no controle de MonthCalendar.

    Me.MonthCalendar1.MaxSelectionCount = 14
    
    If Me.MonthCalendar1.SelectionRange.Start = _
        Me.MonthCalendar1.SelectionRange.End Then
    
        Me.Label1.Text = CStr(Me.MonthCalendar1.SelectionStart)
    
    Else
    
        Me.Label1.Text = Me.MonthCalendar1.SelectionRange.Start & _
            " - " & Me.MonthCalendar1.SelectionRange.End
    
    End If
    
  2. Pressione F5 para executar a página.

  3. Quando o formulário for exibido, selecione um intervalo de datas no controle MonthCalendar e verifique se o intervalo de datas é exibido no rótulo.

  4. Feche o programa.

Formatando Datas

Você pode formatar as datas retornadas pelo controle MonthCalendar e o controle DateTimePicker usando a função FormatDateTime.Há diversas constantes que você pode usar para indicar o formato da data:

Constante

Descrição

Exemplo (com base no padrão norte-americanoConfigurações regionais em inglês)

DateFormat.GeneralDate

Exibir uma data, um tempo ou ambos.Se for uma data, exibe uma data abreviada.Se houver uma hora parcial, mostrá-la como uma hora longa.Se estiverem presentes, exibir as duas partes.

22/11/1963 12: 00: 00 PM

DateFormat.LongDate

Exibir uma data usando o formato de data longo especificado nas definições regionais do computador.

22.11.63

DateFormat.ShortDate

Exibir uma data usando o formato de data curto especificado nas definições regionais do computador.

11/22/1963

DateFormat.LongTime

Exibir um tempo usando o formato de tempo longo especificado nas definições regionais do computador.

12:00:00 PM

DateFormat.ShortTime

Exibir uma hora no formato de 24 horas (hh:mm).

12:00

Para formatar a data do rótulo

  1. Altere o código no manipulador de eventos MonthCalendar1_DateChanged para o código a seguir.Esse código formata a data retornada como uma data por extenso.

    Me.MonthCalendar1.MaxSelectionCount = 14
    
    If Me.MonthCalendar1.SelectionRange.Start = _
        Me.MonthCalendar1.SelectionRange.End Then
    
        Me.Label1.Text = FormatDateTime( _
            Me.MonthCalendar1.SelectionStart, _
            DateFormat.LongDate)
    Else
        Me.Label1.Text = FormatDateTime( _
            Me.MonthCalendar1.SelectionRange.Start, _
            DateFormat.LongDate) & " - " & FormatDateTime( _
            Me.MonthCalendar1.SelectionRange.End, DateFormat.LongDate)
    End If
    
  2. Altere o código no manipulador de eventos DatePicker1_ValueChanged para o código a seguir.Esse código formata a data retornada como uma data por extenso.

    Me.Label1.Text = FormatDateTime(Me.DateTimePicker1.Value, _
        DateFormat.LongDate)
    
  3. Pressione F5 para executar a página.

  4. Quando a forma for exibida, clique em uma data ou intervalo de datas no controle de MonthCalendar.Verifique se a data ou o intervalo de datas aparece na formato de data longo no rotular.

  5. Clique em uma data no controle DateTimePicker e verifique se que a data do rótulo aparece como uma data por extenso.

  6. Feche o programa.

Próximas etapas

Nesta lição, você aprendeu como recuperar datas selecionadas em controles MonthCalendar e DateTimePickere exibi-los em um Windows Form.Você aprendeu também como exibir um intervalo de datas, e como formatar as datas recuperadas.Na próxima lição, você aprenderá a usar os controles de dados.

Próxima Lesson: Controles de dados: Exibindo dados em controles DataGridView

Consulte também

Referência

DateTimePicker Controlar Overview (Windows Forms)

MonthCalendar Controlar Overview (Windows Forms)

Função FormatDateTime (Visual Basic)

Outros recursos

Criando a aparência do seu programa Visual: Introdução ao Windows Forms