TEXTBOX NUMERIQUE

Signaler
Messages postés
468
Date d'inscription
vendredi 21 février 2003
Statut
Membre
Dernière intervention
30 août 2007
-
Messages postés
2336
Date d'inscription
samedi 14 juillet 2001
Statut
Membre
Dernière intervention
5 mai 2009
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/25148-textbox-numerique

Messages postés
2336
Date d'inscription
samedi 14 juillet 2001
Statut
Membre
Dernière intervention
5 mai 2009
4
sinon tu as toujours la vieille méthode de la détection d'erreur

sur le on text change

on error goto Erreur
dim temp as double
temp = sender.text
sender.backcolor = color.white
exit sub
erreur:
sender.backcolor = color.red
msgbox("Le texteBox " & sender.name & " doit contenir que des chiffres doubles")

je sais , j'ai mixer un peu de .net et vb6.0, je suis plus habitué à Vb6.0. et avoir été en .Net, il y aurait eu des façons d'qavoir un résultat beaucoup plus puissant, surytout mixer avec l'orienté objet
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
62
Comme je l'ai indiqué :

Le presse papier est une faille ici.... libre a vous d'implémenter ca comme bon vous semblera......


il sufit en fait de se greffer sur l'evenement KeyDown, de tester l'action Coller, de verifier le contenu du clipboard et d'empecher si besoin est le collage dans le textbox

quelques lignes de code suffisent pour cela...
Messages postés
42
Date d'inscription
vendredi 27 mai 2005
Statut
Membre
Dernière intervention
31 décembre 2005

Salut tout le monde,
j'ai une petite question a propos des ctrl + (X,C,V)
avec le code que vous donnez, on peu copier du texte la ou on n'en veut pas... :s
Comment faire pour controle la copie...?
merci
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
62
j'ai même pas essayé le bout de code envoyé !!

j'ai juste repris le code envoyé au dessus, et dont l'algo me semblait étrange.... (Then Vide Else...)
Messages postés
12
Date d'inscription
dimanche 28 novembre 2004
Statut
Membre
Dernière intervention
8 mars 2005

Lol la mienne ne va pas non plus...
C'est zarb... En plus je me suis royalement planté ds les signes >,<!

Sa source est bcp plus simple pour les claviers numériques ...

Toi tu as mis que si le keycode est compris entre 97 et 103 allors sa anule l'action ...
Messages postés
12
Date d'inscription
dimanche 28 novembre 2004
Statut
Membre
Dernière intervention
8 mars 2005

Alors la c'est du n'importe quoi ! essaie ta source Renfield !
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
62
...

Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
if keyCode > 96 Or keyCode < 105 then
keyCode = 0
end if
End sub
Messages postés
12
Date d'inscription
dimanche 28 novembre 2004
Statut
Membre
Dernière intervention
8 mars 2005

Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
if keyCode =< 96 and keyCode =>105 then
else
keyCode = 0
end if
End sub
( Mais c'est vrai qu'il ne va accepter les chifres avec MAJ )
Ni les ctrlC,V,X
Si on veut résoudre ses problèmmes on aurra une source beaucoup plus complexe que la tienne...
Donc je retire se que j'ai dis dsl
8/10
@+
Messages postés
41
Date d'inscription
mardi 20 mai 2003
Statut
Membre
Dernière intervention
25 août 2007

Slt Pitchou13 !
Tu veux bien préciser ta pensée ? Et après avoir testé le bout de code proposé, si possible.
Messages postés
12
Date d'inscription
dimanche 28 novembre 2004
Statut
Membre
Dernière intervention
8 mars 2005

ya plus simple ! avec le keyAscii ?! no ?
Messages postés
41
Date d'inscription
mardi 20 mai 2003
Statut
Membre
Dernière intervention
25 août 2007

Warf ! Comme quoi on doit tjrs se relire : ctrl + X fonctionne aussi : on arrive à couper le contenu de la textbox pour le mettre ailleurs. Seul le ctrk + C ne fonctionne pas chez moi, avec l'instruction proposée juste avant.
Messages postés
41
Date d'inscription
mardi 20 mai 2003
Statut
Membre
Dernière intervention
25 août 2007

eh ! je ne connaissais pas le truc - mais *seul* le chr(22) fonctionne, pour le ctrl+v : on arrive donc à coller dans la textbox qqch venant du presse-papiers.

J'ai utilité l'instruction :

If InStr("1234567890.," & Chr(8) & Chr(22) & Chr(23) & Chr(24), Chr(KeyAscii)) = 0 Then
KeyAscii = 0 'annule l'action de la touche
End If

Qu'est ce que tu en penses, Renfield ?
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
62
on pourrais ajouter les codes ASCII 22 à 24 qui, de mémoire autorisent Ctrl X / V / C
Messages postés
463
Date d'inscription
dimanche 22 décembre 2002
Statut
Membre
Dernière intervention
18 avril 2009

merci de m'avoir corriger, d'autant plus que j'utilise souvent cette fonction aussi complète que tu l'as mise. J'ai encore voulu allez trop vite :-) allez bonne prog
Messages postés
41
Date d'inscription
mardi 20 mai 2003
Statut
Membre
Dernière intervention
25 août 2007

Salut !
Je passais par là et j'ai vu que l'instruction de la méthode classique proposée par Tmcuh est incomplète : il faut lire

If InStr("1234567890.," & Chr(8), Chr(KeyAscii)) = 0 Then
KeyAscii = 0 'annule l'action de la touche
End If

>> le chr(keyascii) pour la conversion
>> un p'tit backspace, pour permettre la correction
>> le . et la , pour la saisie de la décimale & séparateur des milliers.

Derick
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
62
Tu as toujours la propriété MaxLength....

au pire, un SendMessage avec EM_SETLIMITTEXT...
Messages postés
468
Date d'inscription
vendredi 21 février 2003
Statut
Membre
Dernière intervention
30 août 2007
2
Renfield : j'ai cherché un peu sur le site mais j'ai pas trouvé des masses. En faite je voudrais savoir si AVEC TA METHODE (c'est a dire ajouter une valeur a Style) on pouvais limiter le nombre de caractère du textbox :)

sinon je sais qu'il y a la méthode classique, mais je voulais savoir si c'était possible via cette méthode que je trouve vraiment simple à utiliser et très rapide !

Merci de me répondre

Cordialement
juva
Messages postés
463
Date d'inscription
dimanche 22 décembre 2002
Statut
Membre
Dernière intervention
18 avril 2009

pas mal en effet, bonne recherche en tt cas... y'a un seul problème c'est que le ² est compris comme chiffre, pas cool quoi...
sinon pour rappeler les méthodes classiques:

If InStr("1234567890", keyascii) = 0 Then
keyascii = 0 'annule l'action de la touche
End If

sinon dommage qu'elle est pas adaptable à vb.net car y'a plus de hwnd ...mais sinon 9/10
Messages postés
468
Date d'inscription
vendredi 21 février 2003
Statut
Membre
Dernière intervention
30 août 2007
2
c interessant !!! et point très postif ca ne rame pas !! contrairement a certaine source ki verifie chak lettre tapée

merci pr cette source

++
juva