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
|