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

VB.NET Discussion :

N'avoir que des nombres dans une textbox - Partage d'une solution


Sujet :

VB.NET

  1. #1
    Membre averti Avatar de Delaney
    Homme Profil pro
    Developpeur VB amateur
    Inscrit en
    Mars 2014
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Developpeur VB amateur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2014
    Messages : 148
    Points : 372
    Points
    372
    Par défaut N'avoir que des nombres dans une textbox - Partage d'une solution
    La problématique s'étant posée pour moi et après avoir été fouiné un peu partout, voici la solution que j'ai implantée et que je partage avec vous.

    Elle gère le point (nombre décimale). J'ai pas testé avec une virgule (mes PC ne sont pas configurés en mode "virgule").
    Elle gère le copier/coller, le retour en arrière et l'espace vide.
    Ne gère pas la notation scientifique (1e10 par exemple)
    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
    18
    19
    20
    21
    22
    23
    24
     
     
    Private Sub TextBox1_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
    'dès que je change le text par entrée manuelle ou copier/coller
            TextBox1.Text = verif_nombre(TextBox1.Text) 'appelle la fonction de vérification qui renvoie un text compatible
       End Sub
     
    Module Module1
     
       Public Function verif_nombre(ByVal text As String)
            Dim text_vérifié As String = ""
            Dim l As Integer = text.Length 'récupère la longueur du texte pour traiter le cas ""
            If l = 0 Then Return text_vérifié ' si le texte est "" ne change rien
            If IsNumeric(text) Then
                text_vérifié = text 'si le texte est numérique , cela inclut les décimales, ne change rien
            Else 'si le texte n'est pas numérique
                MsgBox("attention vous ne pouvez entrer que des nombres") 'prévient l'utilisateur
                text = text.Remove(l - 1) 'supprime le dernier caractère entré, généralement celui qui pose problème
                text_vérifié = text
            End If
            Return text_vérifié 'renvoie le texte corrigé et conforme
       End Function
     
    End Module
    Voilà, si ça peut aider certains
    (testé sur Microsoft Visual Basic*2010 express, Windows 7 , 32 et 64 bit)

  2. #2
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7

  3. #3
    Membre averti Avatar de Delaney
    Homme Profil pro
    Developpeur VB amateur
    Inscrit en
    Mars 2014
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Developpeur VB amateur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2014
    Messages : 148
    Points : 372
    Points
    372
    Par défaut
    Il me semble pour l'avoir testé que le MaskedTextbox impose le format tant sur le type d'entrée (lettre, chiffre) que sur le nombre de caractère, la décimale, etc..
    il ne laisse donc pas la possibilité d'entrer n'importe quelle valeur (1 ou 125 ou 165.256). Mais je peux me tromper.

  4. #4
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par Elthorn Voir le message
    Il me semble pour l'avoir testé que le MaskedTextbox impose le format tant sur le type d'entrée (lettre, chiffre) que sur le nombre de caractère, la décimale, etc..
    il ne laisse donc pas la possibilité d'entrer n'importe quelle valeur (1 ou 125 ou 165.256). Mais je peux me tromper.
    Dans ce cas il faut développer ton propre contrôle hérité du TextBox en y joignant un parsing via RegEx :

    http://3dotdevcoder.blogspot.fr/2014...e-textbox.html

    A+

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

Discussions similaires

  1. Saisie que des chiffres dans un TextBox
    Par barchoui dans le forum VB.NET
    Réponses: 10
    Dernier message: 28/12/2010, 19h38
  2. n'utiliser que des entiers dans un textbox
    Par MkcookieFIFO dans le forum Windows Forms
    Réponses: 4
    Dernier message: 17/05/2010, 11h48
  3. Ne rentrer que des chiffres dans une TextBox
    Par nimois3O dans le forum ASP.NET
    Réponses: 25
    Dernier message: 11/06/2007, 12h44
  4. [C#] que des Lettres dans la textbox
    Par diaboloche dans le forum Windows Forms
    Réponses: 4
    Dernier message: 07/10/2005, 09h21
  5. copie d'une table Y d'une base A vers une table X d'une base
    Par moneyboss dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 30/08/2005, 22h24

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