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

Windows Forms Discussion :

numericUpDown vraiment récalcitrant [Débutant]


Sujet :

Windows Forms

  1. #1
    Membre régulier
    Homme Profil pro
    Hobby
    Inscrit en
    Août 2002
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Hobby

    Informations forums :
    Inscription : Août 2002
    Messages : 125
    Points : 82
    Points
    82
    Par défaut numericUpDown vraiment récalcitrant
    Bonjour à tous,


    Etat actuel
    Sur une Form, je dispose d'un numericUpDown qui a pour valeur minimale '1' et maximale '31' (nombre de jours).

    Mon objectif
    Je souhaiterais afficher un MessageBox, via un if-else ou un try-catch, après l'entrée d'une valeur erronée.

    Le problème
    C# impose la valeur maximale après détection d'une valeur supérieure aux mini/maxi de ce champ, sans aucune notification visuelle ni sonore.

    Mes essais
    J'ai effectué une récupération de la valeur entrée par l'utilisateur et soumis à un if-else (voir code ci-dessous), mais C# ignore totalement ce test !
    Nota : le code suivant fonctionne uniquement lorsque la valeur maxi est définie dans les Propriétés à, par exemple, 32, mais ça fait bizarre d'afficher une telle valeur pour le nombre de jours.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    int jourDébutBrut= Convert.ToInt32(nudJourDébut.Value);
    if ((jourDébutBrut>= 1) && jourDébutBrut<= 31))
    {
     jourDébut = jourDébutBrut;
    }
    else
    {
      MessageBox.Show("Numéro de jour invalide", "Erreur");
                    nudJourDébut.Value = 1;
    }
    Ma question en 3 points
    Comment puis-je faire pour :
    1. Imposer un contrôle personnalisé de la valeur ;
    2. Réafficher la valeur minimale et non la maximale après détection de l'erreur ;
    3. Afficher un MessageBox indiquant que la valeur a été corrigée.

    Une piste de réflexion me suffira pour écrire le code correspondant !


    Merci pour votre aide.

  2. #2
    Membre confirmé Avatar de WaterTwelve21
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2015
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2015
    Messages : 270
    Points : 461
    Points
    461
    Par défaut
    Salut , en effet tu as pu remarquer que lorsque tu attribut une valeur maximale , si tu lui indique une valeur supérieur , la valeur du NuD va automatiquement se mettre à la limite max avant même la validation.
    Pour les tests que j'ai pu faire , tu peux tricher et ne pas mettre de limite max , ainsi tu va pouvoir entrer dans le else avec l'affichage de la message box .

    PS : Utilise le débogueur tu vas vite voir ce qu'il s'y passe

    Edit : Une piste : Créer ton propre contrôle hérité de numericUpDown pour enlever toutes ces indigestions ! http://www.musicalnerdery.com/nerder...n-control.html
    throw new NoSignatureException();

  3. #3
    Membre régulier
    Homme Profil pro
    Hobby
    Inscrit en
    Août 2002
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Hobby

    Informations forums :
    Inscription : Août 2002
    Messages : 125
    Points : 82
    Points
    82
    Par défaut
    Merci beaucoup pour cette réponse qui va me permettre de finaliser proprement la partie de code en cours de conception.
    Je vais dans un premier temps suivre ton idée de suppression de la valeur maximale et ensuite lire attentivement le site proposé.

    Cordialement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. RPC indisponible vraiment récalcitrant
    Par pierrot82 dans le forum Windows XP
    Réponses: 1
    Dernier message: 13/08/2011, 21h48
  2. Pas de JOIN sous Oracle (vraiment dommage...)
    Par Isildur dans le forum Langage SQL
    Réponses: 7
    Dernier message: 15/03/2007, 11h28
  3. KDevelop vraiment efficace ?
    Par soubre dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 19/07/2004, 08h37
  4. Update récalcitrant !
    Par Jeannotc dans le forum Bases de données
    Réponses: 10
    Dernier message: 16/06/2004, 18h28
  5. Un "0" récalcitrant
    Par bidson dans le forum XMLRAD
    Réponses: 4
    Dernier message: 20/04/2004, 13h56

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