Affichage de dates : utilisation des contrôles MonthCalendar et DateTimePicker

Mise à jour : novembre 2007

Dans cette leçon, vous allez apprendre à afficher la date dans un Windows Form. Vous apprendrez également à exécuter une action lorsqu'un utilisateur sélectionne une date.

Pour sélectionner plus facilement une date, utilisez un contrôle qui affiche un calendrier. L'utilisation de ces contrôles garantit également la mise en forme correcte de la date. Vous pouvez afficher un calendrier à l'aide d'un contrôle MonthCalendar ou d'un contrôle DateTimePicker.

Le contrôle MonthCalendar vous permet d'afficher un calendrier pour un ou plusieurs mois. Vous pouvez sélectionner une seule date ou une plage de dates à l'aide de ce contrôle.

Le contrôle DateTimePicker présente deux états. Par défaut, le contrôle DateTimePicker s'affiche comme une zone de texte accompagnée d'une flèche de déroulement. Lorsque l'utilisateur clique sur la flèche de déroulement, un calendrier s'affiche. L'utilisateur ne peut sélectionner qu'une seule date si vous utilisez ce contrôle. Le contrôle DateTimePicker vous permet également d'afficher les heures au lieu des dates.

Le processus utilisé pour récupérer une date depuis ces contrôles varie en fonction du contrôle utilisé. Utilisez la propriété Start pour un contrôle MonthCalendar et la propriété Value pour un contrôle DateTimePicker.

Essayez !

Pour récupérer une date et l'afficher dans une étiquette

  1. Dans le menu Fichier, cliquez sur Nouveau projet.

    La boîte de dialogue Nouveau projet s'affiche.

  2. Cliquez sur Application Windows Forms, puis sur OK.

  3. Ajoutez un contrôle Label au formulaire, en conservant le nom par défaut Label1.

  4. Supprimez le texte de la propriété Text du contrôle Label.

  5. Ajoutez un contrôle MonthCalendar au formulaire, en conservant le nom par défaut MonthCalendar1.

  6. Double-cliquez sur le contrôle MonthCalendar pour entrer le gestionnaire d'événements par défaut dans l'éditeur de code.

  7. Dans le gestionnaire d'événements MonthCalendar1_DateChanged, insérez le code suivant pour ajouter des éléments à la liste.

    Me.Label1.Text = CStr(Me.MonthCalendar1.SelectionRange.Start)
    
  8. Retournez au mode Concepteur et ajoutez un contrôle DateTimePicker au formulaire, en conservant le nom par défaut DateTimePicker1.

  9. Double-cliquez sur le contrôle DateTimePicker pour entrer le gestionnaire d'événements par défaut dans l'éditeur de code.

  10. Dans le gestionnaire d'événements DateTimePicker_ValueChanged, insérez le code suivant pour ajouter des éléments à la liste.

    Me.Label1.Text = CStr(Me.DateTimePicker1.Value)
    
  11. Appuyez sur F5 pour exécuter le programme.

  12. Lorsque le formulaire s'affiche, cliquez sur une date dans le contrôle MonthCalendar et vérifiez que la date est affichée dans l'étiquette.

  13. Cliquez sur la flèche de déroulement du contrôle DateTimePicker et sélectionnez une date.

    La date et l'heure sont affichées dans l'étiquette.

  14. Fermez le programme.

Récupération de plusieurs dates

Vous pouvez récupérer une plage de dates sélectionnées dans un contrôle MonthCalendar à l'aide des propriétés Start et End de SelectionRange. Par défaut, il est possible de sélectionner sept jours maximum, mais vous pouvez modifier ce nombre en définissant la propriété MaxSelectionCount. Vous pouvez déterminer si une plage est sélectionnée en vérifiant si les dates de début et de fin sont identiques.

Pour récupérer une plage de dates à partir d'un contrôle month calendar

  1. Remplacez le code dans le gestionnaire d'événements MonthCalendar1_DateChanged par le code suivant. Ce code définit le nombre maximal de jours (deux semaines) qui peuvent être sélectionnés dans le contrôle. Il affiche la date de début dans l'étiquette si un seul jour est sélectionné et une plage de dates si une plage est sélectionnée dans le contrôle 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. Appuyez sur F5 pour exécuter le programme.

  3. Lorsque le formulaire s'affiche, sélectionnez une plage de dates dans le contrôle MonthCalendar, puis vérifiez que la plage de dates apparaît dans l'étiquette.

  4. Fermez le programme.

Mise en forme de dates

Vous pouvez mettre en forme les dates retournées par les contrôles MonthCalendar et DateTimePicker à l'aide de la fonction FormatDateTime. Vous pouvez utiliser plusieurs constantes pour indiquer le format de la date :

Constante

Description

Exemple (à partir des paramètres régionaux anglais (U.S.) par défaut)

DateFormat.GeneralDate

Affichez une date, une heure ou les deux. Affiche la date, le cas échéant, sous forme de date courte. Affiche l'heure, le cas échéant, sous forme d'heure complète. Si elles sont présentes, les deux parties sont affichées.

22/11/1963 12h

DateFormat.LongDate

Affiche une date sous forme de date longue conformément aux paramètres régionaux de votre ordinateur.

Vendredi 22 novembre 1963

DateFormat.ShortDate

Affiche une date sous forme de date courte conformément aux paramètres régionaux de votre ordinateur.

11/22/1963

DateFormat.LongTime

Affiche une heure sous forme d'heure complète conformément aux paramètres régionaux de votre ordinateur.

12:00:00

DateFormat.ShortTime

Affiche une heure au format 24 heures (hh:mm).

12:00

Pour mettre en forme la date dans l'étiquette

  1. Remplacez le code dans le gestionnaire d'événements MonthCalendar1_DateChanged par le code suivant. Ce code met en forme la date retournée sous forme de date longue.

    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. Remplacez le code dans le gestionnaire d'événements DatePicker1_ValueChanged par le code suivant. Ce code met en forme la date retournée sous forme de date longue.

    Me.Label1.Text = FormatDateTime(Me.DateTimePicker1.Value, _
        DateFormat.LongDate)
    
  3. Appuyez sur F5 pour exécuter le programme.

  4. Lorsque le formulaire s'affiche, cliquez sur une date ou une plage de dates dans le contrôle MonthCalendar. Vérifiez que la date ou la plage de dates s'affiche sous forme de date longue dans l'étiquette.

  5. Cliquez sur une date dans le contrôle DateTimePicker et vérifiez que la date dans l'étiquette s'affiche sous forme de date longue.

  6. Fermez le programme.

Étapes suivantes

Cette leçon vous a appris à récupérer des dates sélectionnées dans les contrôles MonthCalendar et DateTimePicker, et à les afficher dans un Windows Form. Vous avez également appris à afficher une plage de dates et à mettre en forme les dates récupérées. Dans la leçon suivante, vous allez apprendre à utiliser des contrôles de données.

Leçon suivante : Contrôles de données : affichage de données dans des contrôles DataGridView

Voir aussi

Référence

Vue d'ensemble du contrôle DateTimePicker (Windows Forms)

Vue d'ensemble du contrôle MonthCalendar (Windows Forms)

FormatDateTime, fonction (Visual Basic)

Autres ressources

Création de l'aspect visuel de votre programme : introduction aux Windows Forms