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 :

[VB.net CF] Textbox pour du numérique


Sujet :

Windows Forms

  1. #1
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    298
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 298
    Points : 156
    Points
    156
    Par défaut [VB.net CF] Textbox pour du numérique
    Bonjour à tous,

    Pour éviter que les utilisateurs n'encodent des valeurs non numériques dans une textbox "quantité", j'ai utilisé le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Not IsNumeric(e.KeyChar) Or txtQte.Text.Length = 5 Then e.Handled = True
    Le seul inconvénient est qu'il me bloque également la touche backspace.
    Quel test je pourrais ajouter pour autoriser la touche del?

    Merci d'avance.
    WebAgency www.cpstyle.net
    BncAgency www.bncmasters.net

  2. #2
    Membre expérimenté
    Avatar de freddyboy
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2003
    Messages
    810
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2003
    Messages : 810
    Points : 1 696
    Points
    1 696
    Par défaut
    normalement en C# tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    private void NumericTextBox_KeyPress(object sender,
    System.Windows.Forms.KeyPressEventArgs e)
    {
    if(!Char.IsDigit(e.KeyChar))
    e.Handled = true;
    else
    e.Handled = false;
    }
    @+
    Someday I will be the most powerful Jedi !

    Freddyboy - Blog

  3. #3
    SLE
    SLE est déconnecté
    Membre éclairé Avatar de SLE
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 604
    Points : 799
    Points
    799
    Par défaut
    La touche Backspace à le code ascii 8. Il te suffit de l'autoriser et c'est bon!

  4. #4
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    298
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 298
    Points : 156
    Points
    156
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If not e.KeyChar = Chr(8) Or Not IsNumeric(e.KeyChar) Or txtQte.Text.Length = 5 Then e.Handled = True
    Ca ne fonctionne pas... Il ne me laisse plus rien encoder.
    Si j'enléève le premier NOT, ca refonctionne mais toujours sans la touche bakspace...
    WebAgency www.cpstyle.net
    BncAgency www.bncmasters.net

  5. #5
    SLE
    SLE est déconnecté
    Membre éclairé Avatar de SLE
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 604
    Points : 799
    Points
    799
    Par défaut
    En C#
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    			if((e.KeyChar < 0x30 || e.KeyChar > 0x39) && e.KeyChar != 0x08)
    			{
    				// Si pas un chiffre ou BACKSPACE alors on annule la frappe
    				e.Handled = true;
    			}

  6. #6
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    298
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 298
    Points : 156
    Points
    156
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     If e.KeyChar = Chr(8) Then
     
    Else
        If Not IsNumeric(e.KeyChar) Or txt_qty.Text.Length = 5 Then e.Handled = True
    End If
    La ca fonctionne

    Merci pour les infos.
    WebAgency www.cpstyle.net
    BncAgency www.bncmasters.net

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/05/2006, 14h04
  2. Réponses: 2
    Dernier message: 01/05/2006, 19h28
  3. [VB.NET] Composant utilisée pour changer donnée access
    Par moust dans le forum Windows Forms
    Réponses: 3
    Dernier message: 19/04/2005, 10h44
  4. [VB.NET] Taille differente pour chaque colonne dans DATAGRID
    Par stephane93fr dans le forum Windows Forms
    Réponses: 14
    Dernier message: 12/01/2005, 16h50
  5. [VB.NET] Valur null pour une date.
    Par Lois dans le forum Windows Forms
    Réponses: 2
    Dernier message: 20/12/2004, 14h38

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