Visual Basic
From Mesdoc
Comment contrôler les caractères qui peuvent être saisis dans un textbox ?
auteur : Romain Puyfoulhoux Une solution consiste à utiliser l'évènement KeyPress, qui a lieu lorsqu'une touche correspondant à un caractère est enfoncée. Les touches comme shift, alt, control et F1 à F12 ne sont pas concernées. La procédure de cet évènement a un argument, KeyAscii, qui est le code du caractère à afficher. Modifiez sa valeur pour afficher le caractère que vous voulez. Donnez-lui une valeur nulle si aucun caractère ne doit être affiché. La fonction chr() renvoie le caractère dont le code est passé en paramètre.
L'exemple suivant interdit tout caractère autre que les chiffres et la touche d'effacement :
vb
Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii <> 8 Then If Not IsNumeric(Chr(KeyAscii)) Then KeyAscii = 0 End If End Sub
Une astuce souvent utilisée consiste à rechercher le caractère entré, dans une chaîne contenant tous les caractères autorisés. Si ce caractère n'est pas dans la chaîne, rien n'est affiché :
vb
Private Sub Text1_KeyPress(KeyAscii As Integer) Dim allowedKeys As String allowedKeys = "0123456789-,." & Chr(8) If InStr(allowedKeys, Chr(KeyAscii)) = 0 Then KeyAscii = 0 End Sub
