Visual Basic World


Revenir à la liste des sources

Code source n°6 : Limitation de caractères
Auteur : P. Cuisinaud codenet2.zip - Taille : 1 Ko
Private Sub nombre_KeyPress(ByVal sender As Object, ByVal e As System.Windows. _
    Forms.KeyPressEventArgs) Handles nombre.KeyPress
    'On accepte que les chiffres (e.KeyChar.IsDigit(e.KeyChar)) ainsi
    'que la touche "Backspace" (Asc(e.KeyChar) <> System.Windows.Forms.Keys.Back),
    'sinon on annule (e.Handled = True)
    If e.KeyChar.IsDigit(e.KeyChar) = False And Asc(e.KeyChar) <> System. _
        Windows.Forms.Keys.Back Then e.Handled = True
End Sub

Private Sub lettre_KeyPress(ByVal sender As Object, ByVal e As System.Windows. _
    Forms.KeyPressEventArgs) Handles lettre.KeyPress
    'On accepte que des lettres, ainsi que la touche "Backspace"
    If e.KeyChar.IsLetter(e.KeyChar) = False And Asc(e.KeyChar) <> System. _
        Windows.Forms.Keys.Back Then e.Handled = True
End Sub

Private Sub majuscule_KeyPress(ByVal sender As Object, ByVal e As System. _
    Windows.Forms.KeyPressEventArgs) Handles majuscule.KeyPress
    'On accepte que des majuscules, ainsi que la touche "Backspace"
    If e.KeyChar.IsUpper(e.KeyChar) = False And Asc(e.KeyChar) <> System. _
        Windows.Forms.Keys.Back Then e.Handled = True
End Sub

Private Sub texte_KeyPress(ByVal sender As System.Object, ByVal e As System. _
    Windows.Forms.KeyPressEventArgs) Handles texte.KeyPress
    'On accepte chiffre et lettres (IsLetterOrDigit), espaces (IsWhiteSpace)
    'et ponctuation (IsPunctuation) Ce qu'ils considèrent comme ponctuation
    'comporte certains charactères speciaux, comme le % ou le @...
    If e.KeyChar.IsLetterOrDigit(e.KeyChar) = False And e.KeyChar.IsWhiteSpace( _
        e.KeyChar) = False And e.KeyChar.IsPunctuation(e.KeyChar) = False Then e.Handled = _
         True
End Sub

Private Sub email_KeyPress(ByVal sender As Object, ByVal e As System.Windows. _
    Forms.KeyPressEventArgs) Handles email.KeyPress
    'Petit exemple théorique qui ne laisserait tapper qu'une addresse e-mail
    '(lettres, chiffres, point (46) et @ (64))
    'If e.KeyChar.IsLetterOrDigit(e.KeyChar) = False And Asc(e.KeyChar) <> 64 _
    'And Asc(e.KeyChar) <> 46 Then e.Handled = True
    'En théorique seulement pourquoi?
    'Parce que le IsLetterOrDigit accepte en fait les accents, la réelle methode serait donc :
    'Si le caractere tappé est : de a à z (97 à 122), de A à Z (65 à 90), de 0 à 9 (48 à 57),
    'un . (46) ou un @ (64) alors on continue, sinon, on annule
    If (Asc(e.KeyChar) >= 48 And Asc(e.KeyChar) <= 57) Or (Asc(e.KeyChar) >= 65  _
        And Asc(e.KeyChar) <= 90) Or (Asc(e.KeyChar) >= 97 And Asc(e.KeyChar) <= 122) Or  _
        Asc(e.KeyChar) = 46 Or Asc(e.KeyChar) = 64 Then e.Handled = False Else e.Handled  _
        = True
End Sub

Remonter

Copyright Visual Basic World - 2005