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

C# Discussion :

Event Keydown pour textbox autoriser l'apostrophe mais pas le 4


Sujet :

C#

  1. #1
    Membre à l'essai
    Homme Profil pro
    Bachelier informatique de gestion
    Inscrit en
    Juillet 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Bachelier informatique de gestion
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2012
    Messages : 40
    Points : 20
    Points
    20
    Par défaut Event Keydown pour textbox autoriser l'apostrophe mais pas le 4
    Bonjour à tous,

    Mon problème est que j'autorise l'encodage de l'apostrophe dans un textbox, mais je ne veux pas autoriser le chiffre 4 de la même touche
    Comment puis-je faire?

    Voici le 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
    17
     
            private bool nonLetterEntered = false;
            private void textBoxNomP_KeyDown(object sender, KeyEventArgs e)
            {
                nonLetterEntered = false;
                if (e.KeyCode < Keys.A || e.KeyCode > Keys.Z)
                {
                    if ((e.KeyCode != Keys.Back) && (e.KeyCode != Keys.Space) && (e.KeyCode != Keys.D4))
                    {
                        nonLetterEntered = true;
                    }
                }
                if (Control.ModifierKeys == Keys.ShiftKey)
                {
                    nonLetterEntered = true;
                }
            }
    Est ce que l'autorisation des espaces est sécurisant également au niveau de l'encodage ou pas ?
    Donnez moi un conseil pour cela.

    Merci d'avance.

  2. #2
    Membre régulier
    Inscrit en
    Mai 2010
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 72
    Points : 100
    Points
    100
    Par défaut
    Bonjour,

    Apparement, tu essaye d'interdire la saisie de chiffre non ?

    Si c'est le cas, je te propose ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
            {
                e.Handled = Char.IsDigit(e.KeyChar);
            }
    A la place de ton événement (on utilise KeyPress à la place de KeyDown)

    Dis moi si c'est cela que tu recherchais

    Bonne journée

  3. #3
    Membre à l'essai
    Homme Profil pro
    Bachelier informatique de gestion
    Inscrit en
    Juillet 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Bachelier informatique de gestion
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2012
    Messages : 40
    Points : 20
    Points
    20
    Par défaut
    J'ai les 2 events pour le nom mais ça ne marche pas j'ai essayé ton code voici le mien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
           private void textBoxNomP_KeyPress(object sender, KeyPressEventArgs e)
            {
                if (nonLetterEntered == true)
                {
                    if (!char.IsLetter(e.KeyChar))
                        e.Handled = true;
                }
            }
    Merci à toi

  4. #4
    Membre régulier
    Inscrit en
    Mai 2010
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 72
    Points : 100
    Points
    100
    Par défaut
    J'ai testé mon code en mettant une textbox et en mettant le code que je t'ai transmis, et il n'acceptais pas le "4" mais que l'apostrophe.

    J'ai copié ton code, et en effet cela ne mqrche pqs chez moi non plus, je ne peux saisir ni l'apostrophe, ni le 4.

    Tu as bien mis le code que je t'ai transmis dans l’évènement KeyPress (et uniquement le code que je t'ai envoyé, sans rien mettre d'autre que cela dans la procedure) ?

    Cela me parrait étrange que ça fonctionne chez toi et pas chez moi :/

  5. #5
    Membre à l'essai
    Homme Profil pro
    Bachelier informatique de gestion
    Inscrit en
    Juillet 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Bachelier informatique de gestion
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2012
    Messages : 40
    Points : 20
    Points
    20
    Par défaut
    Avec ton code j'ai un soucis, je peux encoder les caractères suivants :

    ² & é " ' ( § è ! ç à ) - et ceux là ² ° _

    Il me faut en fait pour le nom juste ces caractères ci : é ' è ç à

    Merci d'avance.

  6. #6
    Membre régulier
    Inscrit en
    Mai 2010
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 72
    Points : 100
    Points
    100
    Par défaut
    D'accord, en effet cette méthode ne supprime que les caractères.

    Avec ceci, le problème est reglé

    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
     
            private List<char> AuthorizedChar = new List<char>() {'é', 'è', 'ç', 'à', '\''};
     
            private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
            {
                e.Handled = Char.IsDigit(e.KeyChar) ;       //si c'est un nombre
     
                if (!e.Handled)                             //si ce n'est pas un nombre
                {
                    if (!((e.KeyChar >= 'A' && e.KeyChar <= 'Z') || (e.KeyChar >= 'a' && e.KeyChar <= 'z')))   //si ce n'est pas un caractere de l'alphabet
                    {
                        e.Handled = !AuthorizedChar.Exists(c => c == e.KeyChar);                               //si il n'est pas présent dans la liste des caractère autorisé, on ne valide pas la saisie         
                    }
                }
            }

  7. #7
    Membre à l'essai
    Homme Profil pro
    Bachelier informatique de gestion
    Inscrit en
    Juillet 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Bachelier informatique de gestion
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2012
    Messages : 40
    Points : 20
    Points
    20
    Par défaut
    Ca marche parfaitement maintenant encore un grand merci

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

Discussions similaires

  1. opacité pour la couleur de cellule mais pas pour le contenu
    Par koKoTis dans le forum Mise en page CSS
    Réponses: 7
    Dernier message: 05/12/2013, 15h04
  2. [MySQL] Problème d'apostrophes, mais pas partout.
    Par Jiyuu dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 10/07/2012, 15h33
  3. Réponses: 1
    Dernier message: 25/03/2010, 18h17
  4. Réponses: 9
    Dernier message: 13/07/2007, 11h03
  5. Réponses: 4
    Dernier message: 13/12/2005, 18h14

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