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

Silverlight Discussion :

KeyDown event - intercépter parenthèse


Sujet :

Silverlight

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    436
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 436
    Par défaut KeyDown event - intercépter parenthèse
    Bonjour ! Je vous explique mon problème. J'ai un textbox dans lequel l'utilisateur saisie des valeurs pour générer une formule de calcul.

    pour avoir une idée du user control : http://www.imagup.com/data/1169551783.html

    Dans le champ de saisie des valeurs numérique, l'utilisateur peut saisir 17*3 touche entrée.
    Cela va ajouter dans la ListBox (retemplatiser of course) 3 objets : [ 17 ] [ x ] [ 3].
    Il est donc possible pour l'utilisateur de saisir des opérateurs de calculs dans le textbox pour éviter de cliquer sur les boutons correspondant.

    Mais en production, on s'est rendu compte que les utilisateurs qui ont un portable 13 pouces sans pavé numérique ne peuvent pas faire la même chose car la valeur du e.Key est différente !
    Je ne le savais même pas ! Bien entendu, le e.Key est identique pour tout ce qui est caractère classique.
    Mais pour les caractères de parenthèses sur un clavier avec pavé num :
    parenthèse ouvrante == e.Key = Key.D5
    parenthèse fermante == e.Key = Key.Unknown
    touche multiplié du pavé num == e.Key = Key.Multiply

    Les valeurs sont différentes !


    De plus si jamais le clavier est qwerty, on aura le même genre de problème !
    Du coup je voulais savoir si le e.KeyCode correspond à la valeur que représente la touche (comme un code ascii par exemple) ou bien c'est l'identifiant d'une touche ?

    Code de mon KeyDown event : (la partie qui nous intéresse)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    If e.Key = Key.Multiply Then
    	AjouterCalcul(New CalculModel(StaticData.GetOperateur("*")), 1)
    	e.Handled = True
     
    ElseIf e.Key = Key.D5 Then
    	AjouterCalcul(New CalculModel(New OperateurModel() With {.Libelle = "(", .Valeur = "(", .TypeOperateur = TypesOperateur.Arithmetique}), 1)
    	e.Handled = True
     
    ElseIf e.Key = Key.Unknown Then
    	AjouterCalcul(New CalculModel(New OperateurModel() With {.Libelle = ")", .Valeur = ")", .TypeOperateur = TypesOperateur.Arithmetique}), 1)
    	e.Handled = True
     
    End If
    Ca peut paraître bizarre mes AjouterCalcul(). ils vont juste ajouter dans liste bindé à la ListBox des éléments.
    Le type d'opérateur permet de choisir le bon template dans mon TemplateSelector et pour plus tard, générer un arbre de calcul.

    J'ai vu qu'il y avait l'event TextInputStart qui possède dans e.Text la valeur qui vient d'être ajouté dans le textbox.
    Donc pour la touche Key.D5 qui correspond à la parenthèse ouvrante, e.Text == "(" le problème est que je ne souhaite pas que la valeur soit affiché dans le textbox mais bien directement intégré à ma liste.

    Je cherche une solution valide pour Windows / Mac (donc pas forcément le e.KeyCodePlatform du KeyDownEvent) fonctionne avec ou sans pavé numérique et en azerty ou qwerty.
    Le tout, sans afficher de caractère dans mon textbox.

    Comment feriez vous à ma place ? Bonne journée à vous (ou bon weekend pour les veinards). Cordialement, Nicolas.

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    436
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 436
    Par défaut
    UP ! Toujours coincé ^^

Discussions similaires

  1. KeyDown event, parfois oui, parfois non
    Par Golzinne dans le forum Silverlight
    Réponses: 13
    Dernier message: 08/10/2011, 09h51
  2. KeyDown event a quoi sert e.Handled
    Par olibara dans le forum Windows Forms
    Réponses: 6
    Dernier message: 03/03/2011, 20h57
  3. [Events]KEYDOWN + repeat
    Par Goundy dans le forum SDL
    Réponses: 5
    Dernier message: 12/12/2008, 20h03
  4. obtenir un event keyDown
    Par liver dans le forum C#
    Réponses: 8
    Dernier message: 13/12/2007, 09h06
  5. Générer l'event keydown à partir d'une feuille de calcul excel
    Par gerard123 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/08/2007, 00h04

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