Obtenir une zone de texte pour accepter uniquement les caractères dans vb.net
Je suis de la création d'une application simple en Vb.net là où j'ai besoin pour effectuer certaines validations. Si je veux une zone de texte nom d'accepter uniquement les lettres de a-z et A-Z par exemple.
Pour ce que j'ai écrit le code suivant:
Private Sub txtname_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox5.KeyPress
If Asc(e.KeyChar) <> 8 Then
If Asc(e.KeyChar) > 65 Or Asc(e.KeyChar) < 90 Or Asc(e.KeyChar) > 96 Or Asc(e.KeyChar) < 122 Then
e.Handled = True
End If
End If
End Sub
Mais de toute façon ce n'est pas ce qui me permet de saisir des caractères. Lorsque j'essaie d'entrer n'importe quel caractère il ne fait rien.
Quelles sont les causes de ce problème et comment puis-je le résoudre?
Vous devez vous connecter pour publier un commentaire.
Sinon, vous pouvez faire quelque chose comme cela,
ou si vous voulez toujours la
ASCII
façon, essayez cela,les deux se comportent de même.
Privé Sous txtname_KeyPress(ByVal sender as Object, ByVal e as System.De Windows.Les formulaires.KeyPressEventArgs) Poignées TextBox5.KeyPress
End Sub
J'espère que cela aide!
C'est une approche plus abstraite, mais toujours efficace néanmoins. Il est simple et peut être ajouté à la
TextChanged
événement. Vous pouvez l'utiliser avec plusieurs zones de texte par l'ajout de poignées pour le sub et à l'aide d'unDirectCast()
.Résumé: Si un caractère non valide est entré, il sera immédiatement supprimé (la plupart du temps, le personnage ne sera pas visible assez longtemps pour que l'utilisateur de l'avis).