permettre à des nombres, des points et de revenir en arrière et effacer dans la zone de texte
j'ai le code suivant:
Private Sub TxtPStof_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtPStof.KeyPress
e.Handled = Not (Char.IsDigit(e.KeyChar) Or e.KeyChar = ".")
End Sub
qui permet uniquement de chiffres et de . dans ma zone de texte, cependant j'ai aussi besoin d'être en mesure de supprimer les valeurs à l'aide de la touche retour arrière ou sur le bouton supprimer.
Est-ce possible?
Merci! 🙂
OriginalL'auteur Christoph | 2012-06-28
Vous devez vous connecter pour publier un commentaire.
Alors que je suis totalement d'accord avec la réponse de Konrad Rudolph
(C'est vraiment une affaire malpropre pour gérer la saisie de l'utilisateur dans l'événement KeyPress)
Je tiens à donner une réponse à votre question.
MSDN dans le KeyPress docs états qui
The KeyPress event is not raised by noncharacter keys
. Cela signifie que vous n'obtenez pas la touche Suppr, mais seulement la touche retour arrière. Vous pourriez gérer cette situation avec ce petit changement à votre gestionnaire d'événementsOriginalL'auteur Steve
C'est la mauvaise approche.
Il est universellement reconnu que le fait de restreindre l'entrée de l'utilisateur est mauvais pour l'expérience utilisateur, et vous toujours ne parviennent pas à gérer des cas particuliers (qu' Ctrl+V, par exemple? Ah, on a oublié à ce sujet. Tout le monde le fait).
Au lieu de cela, .NET offre la
Valider
événement pour la validation de la saisie de l'utilisateur. Vous devez intercepter que événement, pas la pression de touche. Ne permettre aux utilisateurs d'entrer du texte; toutefois, ils veulent; en particulier, leur permettre de faire des erreurs (par exemple, erreur de frappe) sans interruption – qui serait extrêmement préjudiciable et pas utile.Puis, une fois qu'ils sont finis (parce que le focus d'entrée laisse le contrôle de la), faire une validation de la saisie d'un seul coup.
OriginalL'auteur Konrad Rudolph
If x Then variable = False Else variable = True
devrait être réécrit commevariable = Not x
.OriginalL'auteur Pankti
ce code fonctionne très bien pour moi.
OriginalL'auteur slek
essayez celui-ci:
OriginalL'auteur ilan
Cela devrait faire ce que vous voulez qu'il fasse.
OriginalL'auteur bloodfeast
Mettre cela sur événement keypress. Cela permet points et chiffres uniquement
OriginalL'auteur Edward Nazareno