Keychar [Résolu]

Messages postés
159
Date d'inscription
lundi 5 avril 2004
Dernière intervention
6 février 2007
- 16 janv. 2007 à 17:52 - Dernière réponse :
Messages postés
2
Date d'inscription
mardi 20 février 2007
Dernière intervention
26 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?
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Dernière intervention
22 août 2014
- 16 janv. 2007 à 18:24
3
Merci
Je n'ai pas VB.Net, mais toi oui :

Fais une recherche dans ton aide en ligne sur ces mots :
Keyascii
ascii
Asc
M'étonnerait que tu ne trouves pas !

Merci jmfmarques 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 jmfmarques
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Dernière intervention
22 août 2014
- 16 janv. 2007 à 17:56
0
Merci
C'est le caractère ascii 8
Commenter la réponse de jmfmarques
Messages postés
159
Date d'inscription
lundi 5 avril 2004
Dernière intervention
6 février 2007
- 16 janv. 2007 à 18:08
0
Merci
comment faire
e.keychar=8 ou autrement?
Commenter la réponse de 1217meyrin
Messages postés
2
Date d'inscription
mardi 20 février 2007
Dernière intervention
26 mars 2007
- 26 mars 2007 à 15:27
0
Merci
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

End
SubEnd

Class
Commenter la réponse de cs_augustin02

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.