Saisir un nombre décimal dans un textox

Résolu
zakaroh
Messages postés
42
Date d'inscription
mercredi 23 avril 2008
Statut
Membre
Dernière intervention
23 août 2008
- 4 août 2008 à 18:15
zakaroh
Messages postés
42
Date d'inscription
mercredi 23 avril 2008
Statut
Membre
Dernière intervention
23 août 2008
- 6 août 2008 à 10:14
bonjour,
je veux que mon textbox accepte que des nombre décimaux, j'arrive a faire ca avec nombre numirique mais pas avce un virgule.
merci

7 réponses

WishhhMaster
Messages postés
327
Date d'inscription
mardi 17 février 2004
Statut
Membre
Dernière intervention
10 avril 2010
8
6 août 2008 à 02:52
Salut,

1)

C'est normal que tu n'arrives pas a supprimer vu que tu interceptes la touche si ce n'est pas un nombre ou une virgule/point.

Essaye ca pour que le backspace marche

if (!char.IsNumber(e.KeyChar) && e.KeyChar != ',' && e.KeyChar != '.' && e.KeyChar!=8) //8 = backspace
{
                e.Handled = true;
 }
 else if (e.KeyChar == ',')
{
              e.KeyChar = '.';
 }

Mais bon apres tu aura d'autres problemes si tu veux gerer les ctrl-C/ ctrl-V..

2) Ca depend du traitement que tu fais avec le contenu de ta textbox.. mets un test pour tester le cas ou ce n'est pas rempli

Une raison particuliere de ne pas utiliser un NumericUpDown au lieu d'une textbox? Il est fait pour ca
1
zakaroh
Messages postés
42
Date d'inscription
mercredi 23 avril 2008
Statut
Membre
Dernière intervention
23 août 2008
1
6 août 2008 à 10:14
merci ca marche,
par contre j'ai toujour un probleme pour les textbox vide.
en fait quand je remplis ma table par fois je laisse des textbox vide car j'ai pas de valeur a saisir. j'ai un message d erreur;
Input string was not in a correct format,
merci
1
lemmingperceval
Messages postés
128
Date d'inscription
mardi 18 décembre 2007
Statut
Membre
Dernière intervention
2 août 2009
6
4 août 2008 à 19:47
Voilà un petit exemple:
private

void textBox1_KeyPress(
KeyPressEventArgs e)
{

   if ((e.KeyChar < 48 || e.KeyChar > 57) && (e.KeyChar != 8 && e.KeyChar != 13))
      e.Handled =
true;
}

L'idée, c'est de vérifier le code ASCII du caractère qui va être insèré dans ta TextBox.
L'exemple t'empèche d'autrer autre chose que des chiffres.
0
zakaroh
Messages postés
42
Date d'inscription
mercredi 23 avril 2008
Statut
Membre
Dernière intervention
23 août 2008
1
4 août 2008 à 21:20
merci pour la reponse,
j'avais fait un truc presque pareille, mais le probleme j'arrive pas a saisir  la virgule et que la virgule,

merci pour votre aide,,,,,

zakaroh
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Bidou
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Membre
Dernière intervention
20 juin 2013
59
4 août 2008 à 21:51
=> Utilisez un NumericUpDown

<hr />
-My Blog-
0
WishhhMaster
Messages postés
327
Date d'inscription
mardi 17 février 2004
Statut
Membre
Dernière intervention
10 avril 2010
8
4 août 2008 à 22:41
Salut,

Regarde la (c'est le meme principe avec un point au lieu d'une virgule).
http://www.csharpfr.com/infomsg_TEXTBOX-FLOAT-AVEC-SAISIE-PARTICULIERE_1156812.aspx

Sinon oui le numericupdown est sasn doute mieux
0
zakaroh
Messages postés
42
Date d'inscription
mercredi 23 avril 2008
Statut
Membre
Dernière intervention
23 août 2008
1
5 août 2008 à 11:14
merci,
voila j'ai fait ca

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (!char.IsNumber(e.KeyChar) && e.KeyChar != ',' && e.KeyChar != '.')
{
e.Handled = true;
}
{
if (e.KeyChar == ',')
{
e.KeyChar = '.';
}
}

}
ca marche.
mais deux probleme,
1)j'arrive pas a supprimer ou modifier ce que j'ai saisie.
2)quand mon textbox est vide j'ai un message " imput string was not in a correct format" .
merci
0