Bonjour,
Je suis sous vb2005 et il y a quelques chose que je ne saisis pas. Dans
l'évènement suivant si je passe Char.IsDigit = true j'ai accès uniquement
aux lettres les chiffres sont ignorés. Sa devrait etre l'inverse non ?
Private Sub TextBox0604_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles TextBox0604.KeyPress,
TextBox0605.KeyPress, TextBox0606.KeyPress, TextBox0607.KeyPress,
TextBox0608.KeyPress, TextBox0609.KeyPress
'autorise uniquement les chiffres
If Char.IsDigit(e.KeyChar) = False Then e.Handled = True
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Patrick Philippot
Bonjour,
Titeuf [VB.Net 2005] wrote:
Je suis sous vb2005 et il y a quelques chose que je ne saisis pas. Dans l'évènement suivant si je passe Char.IsDigit = true j'ai accès uniquement aux lettres les chiffres sont ignorés. Sa devrait etre l'inverse non ?
Votre exemple n'est pas en phase avec ce que vous dîtes ci-dessus. Vous testez si IsDigit retourne True ou False?
En tous cas, ça fonctionne normalement. e.Handled = True indique que l'événement a été traité et que le caractère doit donc être ignoré (c-à-d que l'event ne sera pas propagé plus loin). La doc explique ça clairement, je pense. L'exemple de la doc indique sans ambiguité que l'on met Handled à True pour ignorer le caractère qui vient d'être entré.
'autorise uniquement les chiffres If Char.IsDigit(e.KeyChar) = False Then e.Handled = True
If Not Char.IsDigit(e.KeyChar)
Tester = True ou = False sur les booléens ou les fonctions qui retournent un booléen, ça fait beaucoup de caractères que l'on pourrait également ignorer :-))) . Écrire simplement
If Not Char.IsDigit(e.KeyChar)
ou
If Char.IsDigit(e.KeyChar)
C'est plus facile à lire que la syntaxe que vous utilisez et cela évite les bugs dûs aux double négations.
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr
Bonjour,
Titeuf [VB.Net 2005] wrote:
Je suis sous vb2005 et il y a quelques chose que je ne saisis pas.
Dans l'évènement suivant si je passe Char.IsDigit = true j'ai accès
uniquement aux lettres les chiffres sont ignorés. Sa devrait etre
l'inverse non ?
Votre exemple n'est pas en phase avec ce que vous dîtes ci-dessus. Vous
testez si IsDigit retourne True ou False?
En tous cas, ça fonctionne normalement. e.Handled = True indique que
l'événement a été traité et que le caractère doit donc être ignoré
(c-à-d que l'event ne sera pas propagé plus loin). La doc explique ça
clairement, je pense. L'exemple de la doc indique sans ambiguité que
l'on met Handled à True pour ignorer le caractère qui vient d'être
entré.
'autorise uniquement les chiffres
If Char.IsDigit(e.KeyChar) = False Then e.Handled = True
If Not Char.IsDigit(e.KeyChar)
Tester = True ou = False sur les booléens ou les fonctions qui
retournent un booléen, ça fait beaucoup de caractères que l'on pourrait
également ignorer :-))) . Écrire simplement
If Not Char.IsDigit(e.KeyChar)
ou
If Char.IsDigit(e.KeyChar)
C'est plus facile à lire que la syntaxe que vous utilisez et cela évite
les bugs dûs aux double négations.
--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Je suis sous vb2005 et il y a quelques chose que je ne saisis pas. Dans l'évènement suivant si je passe Char.IsDigit = true j'ai accès uniquement aux lettres les chiffres sont ignorés. Sa devrait etre l'inverse non ?
Votre exemple n'est pas en phase avec ce que vous dîtes ci-dessus. Vous testez si IsDigit retourne True ou False?
En tous cas, ça fonctionne normalement. e.Handled = True indique que l'événement a été traité et que le caractère doit donc être ignoré (c-à-d que l'event ne sera pas propagé plus loin). La doc explique ça clairement, je pense. L'exemple de la doc indique sans ambiguité que l'on met Handled à True pour ignorer le caractère qui vient d'être entré.
'autorise uniquement les chiffres If Char.IsDigit(e.KeyChar) = False Then e.Handled = True
If Not Char.IsDigit(e.KeyChar)
Tester = True ou = False sur les booléens ou les fonctions qui retournent un booléen, ça fait beaucoup de caractères que l'on pourrait également ignorer :-))) . Écrire simplement
If Not Char.IsDigit(e.KeyChar)
ou
If Char.IsDigit(e.KeyChar)
C'est plus facile à lire que la syntaxe que vous utilisez et cela évite les bugs dûs aux double négations.
-- Patrick Philippot - Microsoft MVP MainSoft Consulting Services www.mainsoft.fr