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

IHM Discussion :

Interdiction de caractères dans un textbox


Sujet :

IHM

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 100
    Points : 54
    Points
    54
    Par défaut Interdiction de caractères dans un textbox
    Bonjour
    Je voudrais interdire tout autre caractère que les lettres, "entrée" et "retour" sur un textbox d'un formulaire.
    J'ai créé le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub txt_Utilisateur_KeyDown(Keyascii As Integer, Shift As Integer)
    Select Case Keyascii
        Case 97 To 122
        ' Caracteres alpha min
         Case 65 To 90
        'Caracteres alpha Maj
        Case 8
        'Retour Chariot
        Case 24
        'Retour arrière
        Case Else
        Keyascii = 0
    End Select
    End Sub
    Cela fonctionne parfaitement sauf pour les chiffres alors que les codes 48 à 57 ne sont pas autorisés

    Merci de votre aide

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    As-tu vérifier quels codescorrespondent à tes chiffres ?

    Pour le savoir :

    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 Sub txt_Utilisateur_KeyDown(Keyascii As Integer, Shift As Integer)
    
    debug.print KeyAscii
    
    Select Case Keyascii
        Case 97 To 122
        ' Caracteres alpha min
         Case 65 To 90
        'Caracteres alpha Maj
        Case 8
        'Retour Chariot
        Case 24
        'Retour arrière
        Case Else
        Keyascii = 0
    End Select
    End Sub
    et [ctrl][G] pour faire afficher la fenêtre de débugage immédiat.

    A+

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 100
    Points : 54
    Points
    54
    Par défaut
    Bonsoir et merci pour ta réponse
    J'ai un autre soucis :
    Mon code fonctionne normalement sur un clavier normal, il en est tout autrement avec un clavier de portable sans pavé numérique.
    En effet, pour exemple la touche 1/& (au dessus du A) prend le code ascii 49 quelque soit la position de la touche capslock et si on appuie sur shitf 1 je retourne les codes 16 puis 49.
    J'aimerais autoriser les chiffres mais pas les caractères spéciaux or sur les touches en haut du clavier les codes ascii sont les mêmes quelque soit le caractère affiché :
    & = ascii 49
    1 = ascii 49 (associé au 16)

    Merci de votre aide

  4. #4
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 128
    Points : 12 185
    Points
    12 185
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    C'est l'événement KeyPress qu'il faut utiliser.
    de plus tu peux combiner.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub txt_Utilsateur_KeyPress(KeyAscii As Integer)
        Select Case KeyAscii
            Case 8, 39, 45, 65 To 90, 97 To 122
            Case Else
                KeyAscii = 0
        End Select
    End Sub
    Argy

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 100
    Points : 54
    Points
    54
    Par défaut
    Merci argyronet
    Celà fonctionne parfaitement, c'était en effet l'évènement qui fallait modifier

  6. #6
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Essaye avec KeyPress au lieu de KeyDown qui te donne la touche qui est appuyée pas le caractère à laquelle elle correspond.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub ShipRegion_KeyPress(KeyAscii As Integer)
        if caractereInvalide then
            KeyAscii = 0
        end if
    End Sub
    A+

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

Discussions similaires

  1. [VB 2005] Enlever certains caractères dans une textbox
    Par BluesMusic dans le forum Windows Forms
    Réponses: 4
    Dernier message: 20/01/2008, 14h14
  2. [RegEx] Interdiction de caractères dans un mot de passe
    Par tarzanjane dans le forum Langage
    Réponses: 3
    Dernier message: 14/09/2007, 18h40
  3. empecher de taper plus de x caractères dans un textbox multiline?
    Par cortex024 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 16/03/2007, 14h51
  4. [C#][2.0]Récupérer des caractères dans un textbox
    Par Sodangbe dans le forum Windows Forms
    Réponses: 5
    Dernier message: 21/04/2006, 12h50
  5. Détécter le caractère \ dans un TextBox
    Par Etanne dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/09/2005, 13h59

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