radzo
Messages postés4Date d'inscriptionvendredi 8 novembre 2013StatutMembreDernière intervention20 octobre 2014
-
11 avril 2014 à 13:39
radzo -
16 avril 2014 à 13:29
Bonjour,
J'aimerais contrôler la saisie dans un textbox sous un certain format. J'ai utilisé maskedtextbox mais ce n'est pas suffisant. En fait le format voulu c'est du genre : 0 33 11 111 11. Avec Maskedtextbox, il n'accepte que les chiffres, mais ce qu'il faut ajouter c'est que :
- il faut que le premier chiffre soit "0"
- il faut que les 2nd et 3è chiffres soient 32 ou 33 ou 34 ou 20
Whismeril
Messages postés19027Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention20 avril 2024656 11 avril 2014 à 15:21
Bonjour, tu parles de MaskedTextBox et tu postes ton message en VB6.
Il me semble que ce contrôle n'existe pas en VB6, il y avait les Masked Edit Box, un peu différents.
Peu importe, dans ton cas tu devrais essayer de contrôler la saisie au moment de la frappe (KeyPress, KeyDown, KeyUp) et annuler un caractère qui ne conviendrait pas.
Pour comparer le texte regarde du coté de l'opérateur Like, ou des expressions régulières.
carlvb
Messages postés199Date d'inscriptionmercredi 23 avril 2003StatutContributeurDernière intervention25 mai 201711 12 avril 2014 à 07:03
Bonjour,
En complément de cette réponse de Whismeril, tu pourrais peut-être utiliser un select case len(textbox) au moment de la frappe pour définir les caractères acceptables en fonction de la position.
Ci-après un petit exemple pour contrôler les trois premiers chiffres. Mais il qui ne gère que la frappe et ne résiste pas à un ctrl+V. Il faudrait dans ce cas là prévoir une vérification supplémentaire.
Private Sub TextBox1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox1.KeyPress
Dim c As String
c = e.KeyChar
Select Case TextBox1.Text.Length
Case 0
If Not c = "0" Then e.KeyChar = CChar("")
Case 1
If Not (c = "2" Or c = "3") Then e.KeyChar = CChar("")
Case 2
Select Case TextBox1.Text.Substring(1, 1)
Case "2"
If Not c = "0" Then e.KeyChar = CChar("")
Case "3"
If Not (c = "2" Or c = "3" Or c = "4") Then e.KeyChar = CChar("")
End Select
End Select
End Sub
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 11 avril 2014 à 22:40
Bonjour (et un salut à carlvb),
Il pourrait en effet s'en inspirer, mais il lui faudra alors adapter pour VB.Net (la remarque faite par Whismeril, que je salue également) étant en effet fondée).
carlvb
Messages postés199Date d'inscriptionmercredi 23 avril 2003StatutContributeurDernière intervention25 mai 201711 12 avril 2014 à 06:00
Bonjour ucfoutu,
Effectivement, comme tu l'as souligné dans la présentation de la source, il faudrait l'adapter mais l'algo est déjà là.
Bonjour tout le monde,
Je suis désolée de ne pas pu vous répondre ni donner une signe de vie plus tôt, mais j'avais eu un empêchement. Je vous remercie tous de m'avoir répondu et donner leurs conseils sur le sujet. Je vais les voir et les essayer et reviendrai ici pour vous informer.
Merci à tous,
12 avril 2014 à 07:03
En complément de cette réponse de Whismeril, tu pourrais peut-être utiliser un select case len(textbox) au moment de la frappe pour définir les caractères acceptables en fonction de la position.
Ci-après un petit exemple pour contrôler les trois premiers chiffres. Mais il qui ne gère que la frappe et ne résiste pas à un ctrl+V. Il faudrait dans ce cas là prévoir une vérification supplémentaire.