Aller au contenu

[RESOLU] Exclure certaines entrées d'une textbox


sajik

Messages recommandés

Bonjour,

J'aimerais qu'une textbox n'acceptent que les caractères suivant 0 1 2 3 4 5 6 7 8 9 , Backspace

J'ai bien sûr trouvé une quinzaine d'exemples de code sur internet, mais aucun ne fonctionne chez moi.

Je ne trouve pas mon erreur.

Je suis totalement débutant, il faut tout m'expliquer pas à pas :(

Voici quelques réponses trouvées sur le net. Les caractères à exclure ne sont pas ceux que je souhaite, mais c'est juste pour l'exemple.

Private Sub montant_KeyPress(Index As Integer, KeyAscii As Integer)
'les chiffres 0 à 9 ont les codes ASCII 48 à 57
'43 est le signe +, 45 est le signe - et 46 est le point .
If (KeyAscii < 48 Or KeyAscii > 57) _
And Not KeyAscii = 43 _
And Not KeyAscii = 45 _
And Not KeyAscii = 46 Then
KeyAscii = 0
End If
End Sub 


source:http://www.commentcamarche.net/forum/affich-88055-keypress-choix-des-touches-en-vb

Private Sub txtSOMETHING_KeyPress(KeyAscii As Integer)
If KeyAscii = 48 Or KeyAscii = 49 Or KeyAscii = 50 Or KeyAscii = 51 Or KeyAscii = 52 _
Or KeyAscii = 53 Or KeyAscii = 54 Or KeyAscii = 55 Or KeyAscii = 56 Or KeyAscii = 57 _
Or KeyAscii = vbKeyBack Then

' This is an allowed character. Let it be! 
Else
' Its a nasty character, so kill em! 
KeyAscii = 0
End If
End Sub


source:https://planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=7808&lngWId=1

Ou dois je placer ce code ? Est-il correct ?

J'ai fait ca :

Public Class Form1



   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       KeyPreview = True
   End Sub

   Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged


   End Sub


   Private Sub montant_keypress(ByVal KeyAscii As Integer)

       'prise en compte unique des valeurs numériques
       'en supprimant toute autre information du clavier

       If InStr("1234567890,", Chr$(KeyAscii)) = 0 And KeyAscii <> 8 And KeyAscii <> 13 And KeyAscii <> 8 And KeyAscii <> 25 And KeyAscii <> 44 And KeyAscii <> 46 Then
           KeyAscii = 0


    End If
    End Sub

Merci d'avance.

François.

Lien vers le commentaire
Partager sur d’autres sites

Merci à yonpo de developpez.net

'on accepte que les chiffres, ainsi que la touche back et la touche virgule (, ou .) sinon on annule
If Char.IsDigit(e.KeyChar) = False And Asc(e.KeyChar) <> System.Windows.Forms.Keys.Back And Asc(e.KeyChar) <> Asc(",") And _
Asc(e.KeyChar) <> Asc(".") Then

	e.Handled = True

End If

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...