Comment détecter si le champs remplis dns un texbox n'est pas numérique

Signaler
-
Messages postés
14855
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
11 octobre 2020
-
bonjour
maintenant je un problème pour mon textboxNuméroproduit
quant on veut lancer une recherche, on doit vérifier si dans le champs
par exemple on a saisis une lettre autre qu'un nombre(Numérique)
que le message d'errerur s'affiche "entrer un nombre svp" en renvoyant
le curseur dans mon textboxNuméroproduit

supposons que la condition pour tester est la suivante
(mais incomplet)

private void toolStripButtonRECHERCHER_Click_1(object sender, EventArgs e)
{
if (.......textboxNuméroproduit.......)// c'est ici que je suis limité pour continuer pour le numérique(0-9 )
{
messagebox.show"entrer un nombre svp"
textboxNuméroproduit.Focus();
}
else
{
//exécution de la requête
}
}

merci d'avance

6 réponses

Messages postés
14733
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
12 octobre 2020
145
Bonjour,

Tu peux essayer Int32.TryParse.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Mon site
merci, mais comment l'insérer c'est ça mon problème
Messages postés
14733
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
12 octobre 2020
145
Bonjour,

Regardes dans l'aide MSDN, tout est indiqué :
http://msdn.microsoft.com/fr-fr/library/system.int32.tryparse.aspx

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Mon site
Messages postés
65
Date d'inscription
jeudi 1 septembre 2011
Statut
Membre
Dernière intervention
22 juillet 2014
7
Bonjour,

if (Int32.TryParse("ton string", out tavariableInt))
{
  // C'est un entier et tu récupères la valeur dans tavariableInt
}
else
{
  // C'est pas un entier
}

BinKentsu
Messages postés
14839
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
12 octobre 2020
92
Hello,
Tu ne peux pas le détecter en amont? C'est-à-dire de définir ton textbox en tant que saisie numérique seulement?


@+
Buno, Admin CS
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Messages postés
14855
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
11 octobre 2020
444
Bonjour, la proposition de buno est à mon avis la plus simple mais parfois ça ne suffit pas.
C'était une de mes première question en C#, mais apparement l'historique de mes message ne remonte pas aussi loin.
Pour mon cas j'avais dérivé un textbox et traité le message au moment de la saisie pour avoir le format que je voullais.

        protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
        {
            switch (keyData)
            {
                case Keys.NumPad0:
                case Keys.NumPad1:
                //....
                       return base.ProcessCmdKey(ref msg, keyData);

                default:
                       return false;
             }

        }


Whismeril