sajik Posté(e) le 6 août 2010 Partager Posté(e) le 6 août 2010 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 More sharing options...
sajik Posté(e) le 13 août 2010 Auteur Partager Posté(e) le 13 août 2010 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 More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.