Je cherche un moyen d'utiliser deux contrôles DateTimePicker pour sélectionner une plage d'heures et de minutes en une journée. Autrement dit, pour sélectionner fondamentalement une «heure de départ» et «heure de fin».DateTimePicker: Sélection d'une plage d'heures dans un seul jour
J'ai commencé avec deux contrôles DateTimePicker avec le format personnalisé de h: mm tt. J'ai essayé d'ajouter (sur ValueChanged), une vérification qui fait que le 'temps de départ' sélectionné deviendra le 'temps de fin' et vice versa, le 'temps de fin' devenant le 'temps de départ'. merci pour votre patience!)
Cependant, cette approche ne semblait pas fonctionner - j'étais toujours en mesure de sélectionner 11h00 sur «l'heure de fin» et 13h00 sur «l'heure de départ». J'ai le sentiment que le jour actuel de l'horodatage a quelque chose à voir avec cela (par exemple, l'heure de début est le jour précédent, et donc moins).
J'ai pensé à changer pour une boîte combinée d'intervalles d'une demi-heure prédéfinis tout au long de la journée; Cependant, les minutes doivent être plus flexibles que cela ...
Des idées?
MISE À JOUR:
commentaire de Dan ci-dessous répond à ce problème ... Ce code j'ai fini avec pour référence;
Private Sub DateTimePicker1_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DateTimePicker1.ValueChanged
DateTimePicker2.MinDate = Date.Today + DateTimePicker1.Value.TimeOfDay
End Sub
Private Sub DateTimePicker2_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DateTimePicker2.ValueChanged
DateTimePicker1.MaxDate = Date.Today + DateTimePicker2.Value.TimeOfDay
End Sub
DateTimePicker1 étant la limite inférieure, DateTImePIcker2 étant lié la partie supérieure, à la fois en utilisant "h: mm tt" comme format datetime personnalisé.
Le stockage de ces préférences va maintenant utiliser le Value.TimeOfDay (et être stocké comme une échelle de temps), puis à la récupération, le processus de chargement suivant se produit;
DateTimePicker1.Value = Date.Today + StoredTimeLowerBound
DateTimePicker2.Value = Date.Today + StoredTimeUpperBound
Ceci appellera automatiquement les événements ValueChanged traités ci-dessus et restaurera les valeurs sélectionnées.
Dan, merci pour votre aide :)
Il peut être utile de publier la logique ValueChanged que vous utilisez. –
Sure chose, fera quand j'ai l'occasion de revenir à mon code :) –