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, parfois oui, parfois non


Sujet :

Silverlight

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    876
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 876
    Par défaut KeyDown event, parfois oui, parfois non
    Bonjour,

    Je suis sur une textBox qui contient 2 chiffres.

    Je gère l'événement KeyDown.

    Quand je suis sur ma textBox et que mon curseur clignotte (donc aucun de mes chiffres n'est sélectionné), si je pousse sur la touche Effacer (Delete), je m'arrête bien dans le code de mon événement.

    Si par contre, je sélectionne un ou deux chiffres de ma textBox, le fait de pousser la touche effacer, m'efface le ou les deux caractères sélectionnés et je ne passe PAS dans mon événement.

    Or mon but, est de justement tester ma touche pour empêcher l'effacement.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 193
    Par défaut
    Pouvoir éditer une textbox mais pas effacer?

    C'est un problème théorique?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2002
    Messages : 39
    Par défaut
    Vérifie sur Keypress si la touche pressée est numérique.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    876
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 876
    Par défaut
    c'est en fait un textBox qui sert à encoder des heures de 00 à 23 uniquement à l'aide du clavier.

    Comme je veux controler l'encodage, je capte la position du curseur dans mon textbox, je regarde quel est mon e.PlatformKeyCode de l'événement Keydown.

    Si tu veux mieux comprendre, vois le poste:
    http://www.developpez.net/forums/d11...-mask-textbox/

    Ce n'est en tous cas pas un exercice théorique.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Golzinne Voir le message
    c'est en fait un textBox qui sert à encoder des heures de 00 à 23 uniquement à l'aide du clavier.
    Alors pourquoi ne pas passer par le contrôle TimePicker fournit par le toolkit Silvelright?

  6. #6
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 193
    Par défaut
    Soit la h2

    Soit faire le check sur le lostfocus...

    Ta solution si la personne se trompe,elle ne peut pas changer le chiffre

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    876
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 876
    Par défaut
    Citation Envoyé par h2s84 Voir le message
    Alors pourquoi ne pas passer par le contrôle TimePicker fournit par le toolkit Silvelright?
    Parceque je ne contrôle pas comme je veux l'encodage des heures et des minutes avec le timepicker, je ne peux agir que quand la l'heure et les minutes sont encodées complétement.

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    876
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 876
    Par défaut
    Citation Envoyé par BenoitM Voir le message
    Soit la h2

    Soit faire le check sur le lostfocus...

    Ta solution si la personne se trompe,elle ne peut pas changer le chiffre
    S'il y a 09 dans la textBox heure et que tu veux mettre midi, il te suffit de taper 12.

    Si tu as tapé 13 par erreur, soit tu reviens dans ton textBox, et comme le 13 est sélectionné, tu retapes simplement 12. Tu peux aussi cliquer derrière le 1 et taper uniquement 2.

  9. #9
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Golzinne Voir le message
    Parceque je ne contrôle pas comme je veux l'encodage des heures et des minutes avec le timepicker, je ne peux agir que quand la l'heure et les minutes sont encodées complétement.
    Encodage ? Je comprends pas. Tu veux dire le format 24 ou le format 12 que t'arriveras pas à gérer avec le TimePicker ?

  10. #10
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    876
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 876
    Par défaut
    je vais pas rentré dans le détail de l'application, mais les heure à encoder doivent entrer dans des crénaux disponibles.

    Si l'utilisateur ne peut par exemple pas entrer d'heures entre 17 et 22 heures, je veux déjà lui interdire d'entrer 18 pour les heures avant même qu'il n'ait entré les minutes...

  11. #11
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 193
    Par défaut
    C'est des heures fixes?
    ou il y a aussi les minutes?

  12. #12
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    876
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 876
    Par défaut
    Merci pour vos réponses. J'ai sans doute mal formulé ma question et vos réponses sont un peu hors sujet.
    Je précise donc ma question.
    Y-a-t'il moyen d'intercepter une touche "DELETE" dans un événement KeyDown et annuler le fonctionnement de base du "delete" dans un textBox.

  13. #13
    Membre Expert
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Par défaut
    Oui, en héritant d'une Textbox et en overridant la méthode OnKeyDown.

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
        public class TextBoxEx : TextBox
        {
            protected override void OnKeyDown(KeyEventArgs e)
            {
                if (e.Key == Key.Delete && this.SelectedText != "")
                {
                    e.Handled = true;
                }
     
                base.OnKeyDown(e);
            }
        }

    Ici j'empeche toute destruction via la toutche Del si un element est selectionné

  14. #14
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    876
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 876
    Par défaut
    Merci Samuel, c'est ça que je cherchais ! et avec le code en plus ...

    J'avais contourné le problème en mettant ma zone "IsReadOnly", ce qui n'empêche pas, avec mon système d'écrire dedans, mais ce sera plus propre avec override.

    Encore merci.

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

Discussions similaires

  1. Subreport renvoie null : parfois oui, parfois non
    Par Grobim dans le forum iReport
    Réponses: 14
    Dernier message: 21/01/2013, 15h57
  2. [AC-2007] Plusieurs cas imbriqués - parfois marche, parfois non
    Par oreoolep dans le forum VBA Access
    Réponses: 5
    Dernier message: 16/10/2011, 07h04
  3. LinkedList parfois vide parfois non..bizarre
    Par specsy dans le forum Interfaces Graphiques en Java
    Réponses: 5
    Dernier message: 05/07/2010, 23h48
  4. [Pervasive SQL]Migration oui ou non?
    Par nenex dans le forum Autres SGBD
    Réponses: 3
    Dernier message: 02/11/2004, 17h03
  5. Conception de Base de données (AutoIncrément oui ou non)
    Par matgel dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 16/04/2004, 08h47

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