IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

DateTimePicker et saisie d'un jour n'existant pas pour le mois prérenseigné


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 25
    Par défaut DateTimePicker et saisie d'un jour n'existant pas pour le mois prérenseigné
    Bonjour,

    En culture française le jour est naturellement saisie avant le mois, or cela pose problème dans certains cas lorsque le jour à saisir n'est pas compatible avec le mois déjà renseigné du DateTimePicker.
    Par exemple, la date du DTP est 01/09/2014 et je souhaite saisir la date du 31/08/2014. Le DTP refuse la saisie de 31 avec le mois de septembre pour garantir la conformité de la date.
    L'utilisateur est donc obligé de se déplacer sur la zone du mois pour le renseigner avant le jour, ou de quitter le clavier et d'utiliser le calendrier du DTP avec la souris, dans les 2 cas l'ergonomie est dégradée.

    Je voudrais donc modifier le comportement du contrôle DateTimePicker lors de la saisie d'une date comme il le fait (probablement pour les besoins de la culture anglaise) lorsque le jour prérenseigné n'est pas compatible avec le mois saisi.
    Par exemple (en culture anglaise) si la date du DTP est 8/31/2014 et que je souhaite renseigner une date en septembre, après saisie du mois 9, le jour 31 est automatiquement modifié à 30.

    L'idée est donc, en reprennant mon premier exemple, lors de la saisie de 31, de définir le premier mois en 31 jours qui précède le mois de septembre, donc de définir le mois à 08.

    J'ai essayé différentes choses en créant un contrôle hérité du DTP, sans succès, mais je n'ai que peu d'expérience dans la création de nouveaux contrôles.

    Avez-vous une idée sur la manière de modifier le DTP pour coder ce comportement ?

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Pourquoi prendre un DateTimePicker alors, s'il faut le travestir ?

    Tu peux prendre 3 Textboxes et les renseigner dans l'ordre que tu veux.

    Tu peux prendre 3 NumericUpDown et les renseigner dans l'ordre que tu veux.


    Et puis, au clavier, la flèche vers la droite dans le clavier place la sélection sur le mois dans le DateTimePicker. Ensuite la flèche vers le haut et la flèche vers le bas permettent de changer le mois.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 25
    Par défaut
    Tes 2 propositions sont très loin des fonctionnalités d'un DTP puisqu'elles ne proposent plus le calendrier que je souhaite conserver et qui est très utile quand on cherche une date que l'on ne connait pas à l'avance.
    D'ailleurs tu aurais pu aussi me proposer un unique Textbox avec un masque de saisie, encore plus simple et plus rapide si l'on occulte le code sur la cohérence de la date, mais ce n'est pas l'objet de ma question.

    Pour info, plus rapide que la "flèche de droite", le "point" du clavier numérique permet de basculer du jour vers le mois et du mois vers l'année, cela revient à saisir un nombre à virgule, c'est plus habituel que d'aller chercher la flèche de droite.

    Sinon je ne vois pas en quoi chercher à améliorer un contrôle standard revient à le travestir, il a juste été pensé pour la culture anglo-saxonne et possède une petite lacune pour la culture française.

  4. #4
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,


    Citation Envoyé par Zozodev Voir le message
    il a juste été pensé pour la culture anglo-saxonne.
    Archi-Faux. En Angleterre et au Canada, les dates ont depuis presque toujours, eut le même format qu'en France soit jour-mois-année. Ce sont les américains qui font bande à part.

    Maintenant, le Canada, utilise de plus en plus le format ISO, soit année-mois-jour. Le calendrier a peut-être un fondement américain, mais pas un fondement anglo-saxon.

    En tout cas, à ce moment, dimanche, 14 juillet, 14 h 35, heure avancée de l'Est, ta question a été vue 39 fois, et personne n'a eu mieux à offrir...

    Et puis moi, quand je vois un calendrier pour sélectionner une date, je m'assure d'être dans le bon mois.

    Et puis, si le problème c'est de disposer d'un calendrier, tu peux utiliser un MonthCalendar et un TextBox. Avec un écran de 15 pouces, il y a assez de place pour que ton MonthCalendar t'affiche 12 mois d'un coup. Tu peux même les combiner pour te faire ton propre contrôle utilisateur, que tu pourras ensuite mettre dans ta boîte à outils. Et puis, si tu piques une crise chaque fois qu'une réponse du forum ne te conviens pas, tu vas finir par trouver le temps long.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 25
    Par défaut
    Citation Envoyé par clementmarcotte Voir le message
    Ce sont les américains qui font bande à part
    Soit, si tu le dis ! Cela n'enlève rien à ma présomption que celui ou ceux qui ont créés ce contrôle gèrent la date en Mois/Jour/Année

    Citation Envoyé par clementmarcotte Voir le message
    personne n'a eu mieux à offrir...
    Oui et alors ... Tu peux me dire que ce n'est pas possible, que tu ne sais pas faire sur la base d'un DTP, peu importe, ma question n'attend pas nécessairement une réponse positive !

    Citation Envoyé par clementmarcotte Voir le message
    Et puis moi, quand je vois un calendrier pour sélectionner une date, je m'assure d'être dans le bon mois.
    Hors sujet ! Le besoin que je décris concerne la saisie d'une date par le clavier, pas via l'usage du calendrier. Chaque utilisateur a ses habitudes, mon objectif est donc d'améliorer l'usage du DTP, pas de contraindre les utilisateurs à renseigner une date d'une façon ou d'une autre.

    Citation Envoyé par clementmarcotte Voir le message
    Et puis, si tu piques une crise chaque fois qu'une réponse du forum ne te conviens pas, tu vas finir par trouver le temps long.
    Ah bon je pique une crise, il me semble plutôt que c'est toi qui prend mal ma réponse. La tienne ne répond pas à ma question, est plutôt réductrice par les termes employés, je n'en fais pas cas. Il n'y a aucune agressivité dans ma réponse, je reste factuel. Tu contribues au forum et c'est très bien ... inutile de s'énerver.

    Quand plusieurs utilisateurs me remontent un même besoin, j'essaye de trouver une réponse, ce n'est pas parce qu'il n'y en a pas ici que leur demande (et donc ma question) n'est pas légitime. Mais je ne suis pas là pour me pourfendre avec toi, je vais en rester là.

  6. #6
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Tiens, voici deux articles et deux contrôles sur CodeProject.

    http://www.codeproject.com/Articles/...and-Datepicker

    http://www.codeproject.com/Tips/6230...Picker-Control (version originale de l'article)
    http://www.codeproject.com/script/Ar...150&aid=623035 (nouvelle version non encore aprouvée)

Discussions similaires

  1. Calendar determiner les jours de l'année pour un mois
    Par austin P. dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 27/11/2008, 16h22
  2. DateTimePicker et saisie manuelle libre de la date
    Par Vonziz dans le forum Windows Forms
    Réponses: 3
    Dernier message: 13/11/2008, 19h22
  3. [Oracle] Date(oracle) => Année saisie sur 4 jours, retournée sur 2
    Par romulus dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 21/03/2006, 03h14
  4. erreur : la table n'existe pas !!!
    Par djouahra.karim1 dans le forum Bases de données
    Réponses: 1
    Dernier message: 08/06/2005, 14h17
  5. Le membre de collection requis n'existe pas
    Par mschistozis dans le forum Access
    Réponses: 4
    Dernier message: 25/10/2004, 16h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo