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 61
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
Rejoignez-nous