Condividi tramite


Visualizzazione di date: utilizzo dei controlli MonthCalendar e DateTimePicker

Aggiornamento: novembre 2007

In questa lezione, verrà spiegato come visualizzare la data in un Windows Form. Verrà anche spiegato come eseguire un'azione quando un utente seleziona una data.

Quando si utilizza un controllo che visualizza un calendario, gli utenti potranno selezionare facilmente una data. Inoltre, l'utilizzo di questi controlli garantisce che la data sia formattata correttamente. È possibile visualizzare un calendario con un controllo MonthCalendar o un controllo DateTimePicker.

Il controllo MonthCalendar permette la visualizzazione di un calendario per uno o più mesi. Gli utenti mediante questo controllo possono selezionare una singola data o un intervallo di date.

Il controllo DateTimePicker dispone di due stati: Per impostazione predefinita, l’aspetto del controllo DateTimePicker è simile a quello di una casella di testo con una freccia a discesa. Quando l'utente fa clic sulla freccia a discesa, viene visualizzato un calendario. Utilizzando questo controllo, l'utente può selezionare solo una data singola. Il controllo DateTimePicker consente anche di visualizzare ore anziché date.

Il procedimento utilizzato per recuperare una data da questi controlli varia a seconda del controllo stesso. Utilizzare la proprietà Start di un controllo MonthCalendar e utilizzare la proprietà Value di un controllo DateTimePicker.

Procedura

Per recuperare una data e visualizzarla in un'etichetta

  1. Scegliere Nuovo progetto dal menu File.

    Verrà visualizzata la finestra di dialogo Nuovo progetto.

  2. Scegliere Applicazione Windows Form, quindi fare clic su OK.

  3. Aggiungere un controllo Etichetta al modulo, mantenendo il nome predefinito Label1.

  4. Rimuovere il testo dalla proprietà Testo del controllo Etichetta.

  5. Aggiungere il controllo MonthCalendar al form, mantenendo il nome predefinito MonthCalendar1.

  6. Fare doppio clic sul controllo MonthCalendar per inserire il gestore eventi predefinito nell'Editor di codice.

  7. Nel gestore eventi MonthCalendar1_DateChanged, aggiungere il codice seguente per aggiungere elementi all'elenco.

    Me.Label1.Text = CStr(Me.MonthCalendar1.SelectionRange.Start)
    
  8. Ritornare alla visualizzazione Progettazione e aggiungere un controllo DateTimePicker al form, mantenendo il nome predefinito DateTimePicker1.

  9. Fare doppio clic sul controllo DateTimePicker per inserire il gestore eventi predefinito nell'Editor di codice.

  10. Nel gestore eventi DateTimePicker_ValueChanged, aggiungere il codice seguente per aggiungere elementi all'elenco.

    Me.Label1.Text = CStr(Me.DateTimePicker1.Value)
    
  11. Premere F5 per eseguire il programma.

  12. Quando viene visualizzato il form, fare clic su una data nel controllo MonthCalendar e verificare che la data sia visualizzata nell'etichetta.

  13. Fare clic sulla freccia a discesa del controllo DateTimePicker e selezionare una data.

    La data e l’ora sono visualizzate nell'etichetta.

  14. Chiudere il programma.

Recupero di più date

È possibile recuperare un intervallo di date selezionate in un controllo MonthCalendar utilizzando le proprietà Start e End di SelectionRange. Per impostazione predefinita, il numero massimo di giorni selezionabili sette, ma è possibile modificare questo valore impostando la proprietà MaxSelectionCount. È possibile determinare è stato selezionato se un intervallo verificando se la data di inizio e la data di fine coincidono.

Per recuperare un intervallo di date da un controllo calendario mensile

  1. Modificare il codice del gestore eventi MonthCalendar1_DateChanged con il codice seguente. Questo codice imposta il numero massimo di giorni (due settimane) selezionabili nel controllo. Visualizza la data di inizio nell'etichetta se è selezionato un solo giorno, ma visualizza un intervallo di date quando nel controllo MonthCalendar è selezionato un intervallo.

    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. Premere F5 per eseguire il programma.

  3. Quando viene visualizzato il form, selezionare un intervallo di date nel controllo MonthCalendar e verificare che l'intervallo di date venga visualizzato nell'etichetta.

  4. Chiudere il programma.

Formattazione delle date

È possibile formattare le date restituite dal controllo MonthCalendar e dal controllo DateTimePicker utilizzando la funzione FormatDateTime. Le costanti che possono essere utilizzate per indicare il formato della data sono numerose:

Costante

Descrizione

Esempio (in base alle impostazioni internazionali predefinite inglesi (Stati Uniti)

DateFormat.GeneralDate

Visualizzare una data, un’ora o entrambe. Se è presente una data, visualizzarla come data breve. Se è presente un’ora, visualizzarla come ora estesa. Se presenti, verranno visualizzate entrambe le parti.

22/11/1963 12:00:00 PM

DateFormat.LongDate

Visualizzare una data nel formato esteso specificato nelle impostazioni internazionali del sistema.

Venerdì, 22 novembre 1963

DateFormat.ShortDate

Visualizzare una data nel formato breve specificato nelle impostazioni internazionali del sistema.

11/22/1963

DateFormat.LongTime

Visualizzare un’ora nel formato esteso specificato nelle impostazioni internazionali del sistema.

12:00:00 PM

DateFormat.ShortTime

Visualizzare l'ora nel formato a 24 ore (hh:mm).

12:00

Per formattare la data nell'etichetta

  1. Modificare il codice del gestore eventi MonthCalendar1_DateChanged con il codice seguente. Questo codice formatta la data restituita come data estesa.

    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. Modificare il codice del gestore eventi DatePicker1_ValueChanged con il codice seguente. Questo codice formatta la data restituita come data estesa.

    Me.Label1.Text = FormatDateTime(Me.DateTimePicker1.Value, _
        DateFormat.LongDate)
    
  3. Premere F5 per eseguire il programma.

  4. Quando viene visualizzato il form, fare clic su una data o un intervallo di date nel controllo MonthCalendar. Verificare che la data o intervallo di date sia visualizzato nel formato data esteso nell'etichetta.

  5. Fare clic su una data nel controllo DateTimePicker e verificare che la data nell'etichetta sia formattata come data estesa.

  6. Chiudere il programma.

Passaggi successivi

In questa lezione, è stato descritto come recuperare date selezionate in controlli MonthCalendar e DateTimePicker e visualizzarli in un Windows Form. È stato anche descritto come visualizzare un intervallo di date e come formattare le date recuperate. Nella lezione successiva, verrà descritto come utilizzare i controlli dei dati.

Lezione successiva: Visualizzazione di dati nei controlli DataGridView

Vedere anche

Riferimenti

Cenni preliminari sul controllo DateTimePicker (Windows Form)

Cenni preliminari sul controllo MonthCalendar (Windows Form)

Funzione FormatDateTime (Visual Basic)

Altre risorse

Creazione dell'aspetto visivo del programma: introduzione a Windows Form