1217meyrin
Messages postés159Date d'inscriptionlundi 5 avril 2004StatutMembreDernière intervention 6 février 2007
-
16 janv. 2007 à 17:52
cs_augustin02
Messages postés2Date d'inscriptionmardi 20 février 2007StatutMembreDernière intervention26 mars 2007
-
26 mars 2007 à 15:27
Bonjour,
pour autoriser uniquement les chiffres et le point, le code ci-après est valide
if isnumeric(e.keychar) or e.keychar="." then
mais comment autoriser le retour arriere et le delete?
cs_augustin02
Messages postés2Date d'inscriptionmardi 20 février 2007StatutMembreDernière intervention26 mars 2007 26 mars 2007 à 15:27
Bonjour,
Je n'ai pas de réponse directe à ta question, mais pour le contrôle d'un champ de saisie numérique, voici le code que j'ai développé (avec l'aide des utilisateurs de ce forum !), et qui me donne entière satisfaction...
Amicalement.
Public
Class Form1
Private
Sub TextBox1_KeyPress(
ByVal sender
As
Object,
ByVal e
As System.Windows.Forms.KeyPressEventArgs)
Handles TextBox1.KeyPress
If e.KeyChar =
"."
Then e.KeyChar =
","
' on change le . par une , (on peut utiliser le . du pavé numérique comme séparateur décimal)
If InStr(TextBox1.Text,
",") > 0
And e.KeyChar =
","
Then e.KeyChar =
""
' interdire la saisie d'une virgule si déjà présente
If Asc(e.KeyChar) <> 8
And InStr(
"0123456789,", e.KeyChar) = 0
Then e.KeyChar =
""
' autoriser la saisie des caractères 0123456789, et l'appui de la touche retour arrière
End
Sub
Private
Sub TextBox1_LostFocus(
ByVal sender
As
Object,
ByVal e
As System.EventArgs)
Handles TextBox1.LostFocusTextBox1.Text = Format(Val(TextBox1.Text.Replace(
",",
".")),
"####0.00") ' on mets en forme la saisie avec 2 décimales
End
Sub
Private
Sub TextBox1_TextChanged(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles TextBox1.TextChanged
' pour récupérer la valeur numérique de TextBox1.Text on opère comme suit :
' Val(TextBox1.Text) ne prendrait que la valeur entière Label1.Text = Val(TextBox1.Text.Replace(
",",
".")) * 2 ' Multiplie la valeur de TextBox1.Text par 2