Est-il possible d'utiliser DateTimePicker (Winforms) pour choisir à la fois la date et l'heure (dans la liste déroulante)? Comment modifier l'affichage personnalisé de la valeur sélectionnée? De plus, est-il possible de permettre à l'utilisateur de taper la date / heure manuellement?
143
System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern
etSystem.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.ShortTimePattern
pour obtenir le format de la culture actuelle. Lien MSDNDim date As String = CultureInfo...ShortDatePattern Dim time As String = CultureInfo...ShortTimePattern dtpThing.Format = DateTimePickerFormat.Custom dtpThingEnd.CustomFormat = date + " " + time
Vous pouvez également contraindre, par exemple, la composante temporelle manuellement:Dim date As String = CultureInfo...ShortDatePattern Dim time As String = CultureInfo...ShortTimePattern dtpThing.Format = DateTimePickerFormat.Custom dtpThingEnd.CustomFormat = date + " HH:mm"
Il est préférable d'utiliser deux DateTimePicker pour le Job. Un sera la valeur par défaut pour la section de date et le second DateTimePicker est pour la partie heure. Formatez le deuxième DateTimePicker comme suit.
Les deux devraient ressembler à ceci après les avoir capturés
Pour obtenir le DateTime à partir de ces deux contrôles, utilisez le code suivant
Pour attribuer le DateTime à ces deux contrôles, utilisez le code suivant
la source
Malheureusement, c'est l'un des nombreux abus de langage dans le cadre, ou au mieux une violation de SRP.
Pour utiliser DateTimePicker pour les heures, définissez la propriété Format sur Heure ou Personnalisé (utilisez Personnalisé 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 ensemble, il ne peut pas utiliser l'interface graphique pour définir les deux.
la source
Le sélecteur de date et d'heure peut être utilisé pour choisir à la fois la date et l'heure, c'est pourquoi il est appelé «sélecteur de date et d'heure». Vous pouvez définir la propriété « Format » sur « Personnalisé » et définir une combinaison de différents spécificateurs de format pour représenter / sélectionner la date / l'heure dans différents formats dans la propriété « Format personnalisé ». Cependant, si vous souhaitez modifier la date, le calendrier contextuel peut être utilisé alors qu'en cas de sélection de l'heure (dans le même contrôle, vous êtes obligé d'utiliser les touches haut / bas pour modifier les valeurs.
Par exemple, un format personnalisé " jjjjj, 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 en fonction de vos besoins, par exemple MMMM donnera " août " tandis que MM donnera " août "
la source
yyyy-MM-dd HH:mm
), puis renvoyer une valeur qui ne reflète qu'une partie de la date et de l'heure affichées . J'appellerais ça un bug, mais ça existe depuis des décennies ...Accédez au
Properties
de votredateTimePicker
dans Visual Studio et définissez-leFormat
surCustom
. SousCustomFormat
entrez votre format. Dans mon cas, j'ai utiliséMMMMdd, yyyy | hh:mm
la source
Vous pouvez l'obtenir pour afficher l' heure . À partir de là, vous devrez probablement avoir deux contrôles (une date, une heure) pour accomplir ce que vous voulez.
la source
J'ai peur 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 la possibilité de taper la date et l'heure manuellement, vous pouvez créer un composant personnalisé avec une combinaison TextBox / DateTimePicker pour ce faire, et cela pourrait fonctionner raisonnablement bien, si les contrôles tiers ne sont pas une option.
la source