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 :

[WinForm Problème] SendKeys.Send(",") lors KeyDown NumericUpDown


Sujet :

Windows Forms

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 5
    Points : 5
    Points
    5
    Par défaut [WinForm Problème] SendKeys.Send(",") lors KeyDown NumericUpDown
    Bonjour à tous !

    Voila plus de deux heures que je me gratte les cheveux sur un problème, à en devenir fou !

    Je suis un projet d'encodage de factures pour les imprimer.

    J'ai dans un Form un NumericUpDown (Name : numUpDownTotalHtva). J'ai un événement OnKeyDown définit sur ce contrôle qui doit permettre de détecter si on appuie sur la touche '.' du pavé numérique mais aussi sur 'SHIFT + ;' (correspondant au '.'). Si on appuie sur une de ces deux touches, le caractères doit être ',' et non '.' (car provoque des problèmes au niveau des décimales de mon NumericUpDown).

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
            private void numUpDownTotalHtva_KeyDown(object sender, KeyEventArgs e)
            {
                if (e.KeyCode == Keys.Decimal)
                {
                    SendKeys.Send(",");
                    e.SuppressKeyPress = true;
                }
                else
                {
                    if (e.Shift && e.KeyCode == Keys.OemPeriod)
                    {
                        SendKeys.Send(",");
                        e.SuppressKeyPress = true;
                    }
                }
            }
    Pour le '.' du pavé numérique, pas de problème, le test est correct et le caractère de remplacement est bien envoyé au numericupdown.

    Par contre pour l'autre cas de figure, ca coince... En mode debug, il passe bien dans le second if mais il n'envoie pas le caractère de remplacement...

    J'ai essayé de plusieurs façons :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (e.Shift && e.KeyCode == Keys.OemPeriod)
    {
              SendKeys.Send(",");
              e.SuppressKeyPress = false;
    }
    ou encore
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (e.Shift && e.KeyCode == Keys.OemPeriod)
    {
              SendKeys.Send("{,}");
              e.SuppressKeyPress = false;
    }
    et également en retirant le test e.Shift. Dans ce cas (sans le test e.Shift), cela fonctionne correctement mais ce n'est pas le caractère '.' qui est tapé mais ';'

    Merci de bien vouloir m'aider à résoudre ce petit problème, je commence à désespérer ^^

    A bientôt,

    Jisay

  2. #2
    Membre habitué Avatar de bibbi
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    113
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 113
    Points : 137
    Points
    137
    Par défaut
    Salut,

    à la limite tu peux aussi prendre le problème autrement avec le OnValueChanged() du composant et un .Replace() sur la chaîne pour remplacer ton "." par ta ",".

    Je pense que çà peut être un peu plus simple.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Salut !

    Merci pour la réponse. Il me semble déjà avoir essayé cette méthode (je ne me souviens plus si c'était lors du OnValueChanged()) mais mon prog me formatait mon value (pour lui un point, c'est le séparateur des milliers) et par exemple '15.00' me renvoyait '1500,00'...
    Je vais retenter le coup, je te tiens au courant !

    A plus,

    Jisay

Discussions similaires

  1. [Shell] Problème avec le Back-quote (ksh)
    Par bob94700 dans le forum Linux
    Réponses: 3
    Dernier message: 27/01/2008, 12h45
  2. Sudo problème avec les simples quotes
    Par Tronche dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 23/03/2007, 12h02
  3. [MySQL] Problème avec un double quote
    Par wormseric dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 26/01/2007, 14h44
  4. [Wamp] Problème d'insertion avec quote d'un formulaire
    Par cyberdevelopment dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 20/08/2006, 18h55
  5. [SQL-Server] Problèmes de guillemets et quotes dans un INSERT
    Par gregb34 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 05/05/2006, 09h40

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