Textbox pour float ? (avec saisie particulière)

Résolu
10demon10 Messages postés 63 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 28 juin 2012 - 19 juin 2008 à 20:49
10demon10 Messages postés 63 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 28 juin 2012 - 20 juin 2008 à 16:59
Bonjour à tous voila je sais qu'il y a beaucoup de sujet dessus mais je pense que mon problème est assez bizzare.
En effet j'ai fait ce petit bout de code dans un formulaire sur une textebox afin de modifier sa saisie

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (char.IsNumber(e.KeyChar))
            {                if (e.KeyChar '1') e.Handled false;                else if (e.KeyChar '2') e.Handled false;                else if (e.KeyChar '3') e.Handled false;                else if (e.KeyChar '4') e.Handled false;                else if (e.KeyChar '5') e.Handled false;                else if (e.KeyChar '6') e.Handled false;                else if (e.KeyChar '7') e.Handled false;                else if (e.KeyChar '8') e.Handled false;                else if (e.KeyChar '9') e.Handled false;                else if (e.KeyChar '0') e.Handled false;                else if (e.KeyChar '.') e.Handled false;
                else e.Handled = true;
            }
        } 

Cependantnormalement d'après ce programme (et surtout d'après ce que j'ai lu sur Codes Sources) il devrais uniquement saisir les chiffres et les "." et bien en fiat il saisie tous . Et dernière chose quand je change les false en true et le true en false cela bloque les valeurs char (les chiffres et le ".") ???

Stay GREAT forever [  ]

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
19 juin 2008 à 22:59
Salut,

e.Handled doit etre true seulement si tu ne veut pas que la textbox gere l'evenement automatiquement, donc si ce n'est pas un nombre et que ce n'est pas un point.

Essaye ca

if (!char.IsNumber(e.KeyChar) && e.KeyChar!='.')
{
     e.Handled = true;
}

Peut-etre que tu pourrais utiliser le control numericupdown sinon.
3
WishhhMaster Messages postés 327 Date d'inscription mardi 17 février 2004 Statut Membre Dernière intervention 10 avril 2010 8
20 juin 2008 à 04:24
Salut,

Les numericupdown acceptent des valeur de type "decimal", donc oui tu dois convertir tes floats en "decimal" et inversement.
Mais c'est aussi bien que de convertir des tring en float :p
tu peux utiliser numUpDown.DecimalPlaces pour le nombre de chiffres affichés après le point, puis
numUpDown.Value=(decimal)taValeurFloat;
taValeurFloat=(float)numUpDown.Value;
3
10demon10 Messages postés 63 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 28 juin 2012
19 juin 2008 à 23:59
merci c'est exactement ce que je cherchai en fait c'est une textebox qui gere des coordonnées avec DirectX (3D) et pour les vecteur seul les float sont accepter et je n'ai pa trouver comment mettre des float avec un numericupdown sans passer par une conversion de ma variable.

Stay GREAT forever [  ]
0
10demon10 Messages postés 63 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 28 juin 2012
20 juin 2008 à 10:10
En effet mais cela oblige à faire 2 numericUpDown (une avant la virgule et une après) et peut éstétique pour mon apply mais sisnon çà marche aussi.

Merci beaucoup pour tes réponses WishhMaster jéspère quelles servirons à d'autre autant quel mon servis.

Stay GREAT forever [  ]
0

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

Posez votre question
WishhhMaster Messages postés 327 Date d'inscription mardi 17 février 2004 Statut Membre Dernière intervention 10 avril 2010 8
20 juin 2008 à 14:55
Salut,
non tu n'as besoin que d'une numericUpdown. Si tu utilise la propriété DecimalPlaces, ça te permet d'entrer des nombres décimaux (avec virgule ou point, dépendent de la culture de ton application)
Enfin tu fais comme tu veux =)
0
10demon10 Messages postés 63 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 28 juin 2012
20 juin 2008 à 16:58
Tu as raison autant pour moi j'avai mal vu/utilisé les propriétés de la numericbox ac VS 2005

Stay GREAT forever [  ]
0
10demon10 Messages postés 63 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 28 juin 2012
20 juin 2008 à 16:59
(oups numericUpdown)

Stay GREAT forever [  ]
0
Rejoignez-nous