10demon10
Messages postés63Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention28 juin 2012
-
19 juin 2008 à 20:49
10demon10
Messages postés63Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention28 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 ".") ???
WishhhMaster
Messages postés327Date d'inscriptionmardi 17 février 2004StatutMembreDernière intervention10 avril 20108 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.
WishhhMaster
Messages postés327Date d'inscriptionmardi 17 février 2004StatutMembreDernière intervention10 avril 20108 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;
10demon10
Messages postés63Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention28 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.
WishhhMaster
Messages postés327Date d'inscriptionmardi 17 février 2004StatutMembreDernière intervention10 avril 20108 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 =)