web-dev-qa-db-fra.com

DateTimePicker: choisissez la date et l'heure

Est-il possible d'utiliser DateTimePicker (Winforms) pour choisir à la fois la date et l'heure (dans la liste déroulante)? Comment modifiez-vous l'affichage personnalisé de la valeur sélectionnée? En outre, est-il possible d'activer l'utilisateur pour taper la date/heure manuellement?

136
Grzenio

Définissez le format sur Personnalisé, puis spécifiez le format:

dateTimePicker1.Format = DateTimePickerFormat.Custom;
dateTimePicker1.CustomFormat = "MM/dd/yyyy hh:mm:ss";  

ou comme vous voulez l'exposer. Vous pouvez alors taper directement la date/heure. Si vous utilisez MMM, vous devrez utiliser la valeur numérique du mois pour la saisie, à moins que vous n'écriviez vous-même du code pour cela (par exemple, 5 résultats en mai).

Je ne connais pas le sélecteur pour la date et l'heure ensemble. Cela ressemble à un contrôle personnalisé pour moi.

178
itsmatt

Il est préférable d’utiliser deux DateTimePickers pour le travail. Un sera la valeur par défaut pour la section de date et le second DateTimePicker pour la partie heure. Formatez le deuxième DateTimePicker comme suit.

      timePortionDateTimePicker.Format = DateTimePickerFormat.Time;
      timePortionDateTimePicker.ShowUpDown = true;

Les deux devraient ressembler à ceci après les avoir capturés

Two Date Time Pickers

Pour obtenir le DateTime de ces deux contrôles, utilisez le code suivant

DateTime myDate = datePortionDateTimePicker.Value.Date + 
                    timePortionDateTimePicker.Value.TimeOfDay; 

Pour attribuer le DateTime à ces deux contrôles, utilisez le code suivant

datePortionDateTimePicker.Value  = myDate.Date;  
timePortionDateTimePicker.Value  = myDate.TimeOfDay; 
55
Vectoria

Malheureusement, il s’agit d’un des nombreux faux noms du cadre ou, au mieux, d’une violation du PÉR.

Pour utiliser DateTimePicker avec des heures, définissez la propriété Format sur Time ou Custom (Utilisez Custom si vous souhaitez contrôler le format de l'heure à l'aide de la propriété CustomFormat). Définissez ensuite la propriété ShowUpDown sur true.

Bien qu'un utilisateur puisse définir manuellement la date et l'heure, il ne peut pas utiliser l'interface graphique pour définir les deux.

45
Nescio

Le sélecteur de date et d'heure peut être utilisé pour choisir à la fois la date et l'heure. C'est pourquoi il s'appelle 'Sélecteur de date et d'heure'. Vous pouvez définir la propriété "Format" sur "Personnalisé" et définir une combinaison de spécificateurs de format différents pour représenter/sélectionner la date/heure dans différents formats dans "Format personnalisé "propriété. Toutefois, si vous souhaitez modifier la date, le calendrier en incrustation peut être utilisé alors que dans le cas de la sélection de l'heure (dans le même contrôle, vous devez utiliser les touches haut/bas pour modifier les valeurs.

Par exemple, un format personnalisé "ddddd, MMMM jj, aaaa hh: mm: ss tt" vous donnera un résultat comme celui-ci: "jeudi, 20 août 2009 à 02:55:23 PM ".

Vous pouvez jouer avec différentes combinaisons de spécificateurs de format adaptés à vos besoins, par exemple MMMM donnera "août" alors que MM donnera "août"

23
Danish

Accédez à la Properties de votre dateTimePicker dans Visual Studio et définissez Format sur Custom. Sous CustomFormat entrez votre format. Dans mon cas, j'ai utilisé MMMMdd, yyyy | hh:mm

enter image description here
dateTimePickerProperties

12
Serge Voloshenko

Vous pouvez le faire afficher heure . A partir de là, vous devrez probablement avoir deux contrôles (une date, une fois) pour accomplir ce que vous voulez.

1
Craig

Je crains que le contrôle DateTimePicker n'ait pas la capacité de faire ces choses. C'est un contrôle assez basique (et frustrant!). Votre meilleure option peut être de trouver un contrôle tiers qui fait ce que vous voulez.

Pour pouvoir taper manuellement la date et l'heure, vous pouvez créer un composant personnalisé avec une combinaison TextBox/DateTimePicker pour ce faire. Cela pourrait fonctionner assez bien si les contrôles tiers ne sont pas une option.

1
Jeffrey L Whitledge