Textbox pour float ? (avec saisie particulière) [Résolu]

Messages postés
63
Date d'inscription
vendredi 23 avril 2004
Dernière intervention
28 juin 2012
- 19 juin 2008 à 20:49 - Dernière réponse :
Messages postés
63
Date d'inscription
vendredi 23 avril 2004
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 [  ]
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
Messages postés
327
Date d'inscription
mardi 17 février 2004
Dernière intervention
10 avril 2010
- 19 juin 2008 à 22:59
3
Merci
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.

Merci WishhhMaster 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de WishhhMaster
Meilleure réponse
Messages postés
327
Date d'inscription
mardi 17 février 2004
Dernière intervention
10 avril 2010
- 20 juin 2008 à 04:24
3
Merci
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;

Merci WishhhMaster 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de WishhhMaster
Messages postés
63
Date d'inscription
vendredi 23 avril 2004
Dernière intervention
28 juin 2012
- 19 juin 2008 à 23:59
0
Merci
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 [  ]
Commenter la réponse de 10demon10
Messages postés
63
Date d'inscription
vendredi 23 avril 2004
Dernière intervention
28 juin 2012
- 20 juin 2008 à 10:10
0
Merci
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 [  ]
Commenter la réponse de 10demon10
Messages postés
327
Date d'inscription
mardi 17 février 2004
Dernière intervention
10 avril 2010
- 20 juin 2008 à 14:55
0
Merci
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 =)
Commenter la réponse de WishhhMaster
Messages postés
63
Date d'inscription
vendredi 23 avril 2004
Dernière intervention
28 juin 2012
- 20 juin 2008 à 16:58
0
Merci
Tu as raison autant pour moi j'avai mal vu/utilisé les propriétés de la numericbox ac VS 2005

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

Stay GREAT forever [  ]
Commenter la réponse de 10demon10

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.