TEXTBOX NUMERIQUE

juvamine Messages postés 468 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 30 août 2007 - 4 août 2004 à 11:41
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 - 8 janv. 2006 à 20:29
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

cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
8 janv. 2006 à 20:29
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
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
30 mai 2005 à 09:32
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...
papi jim Messages postés 42 Date d'inscription vendredi 27 mai 2005 Statut Membre Dernière intervention 31 décembre 2005
27 mai 2005 à 15:50
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
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
8 mars 2005 à 14:59
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...)
cs_Pitchou13 Messages postés 12 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 8 mars 2005
8 mars 2005 à 12:17
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 ...
cs_Pitchou13 Messages postés 12 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 8 mars 2005
8 mars 2005 à 12:07
Alors la c'est du n'importe quoi ! essaie ta source Renfield !
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
8 mars 2005 à 11:20
...

Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
if keyCode > 96 Or keyCode < 105 then
keyCode = 0
end if
End sub
cs_Pitchou13 Messages postés 12 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 8 mars 2005
7 mars 2005 à 18:31
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
@+
cs_derick Messages postés 41 Date d'inscription mardi 20 mai 2003 Statut Membre Dernière intervention 25 août 2007
7 mars 2005 à 09:01
Slt Pitchou13 !
Tu veux bien préciser ta pensée ? Et après avoir testé le bout de code proposé, si possible.
cs_Pitchou13 Messages postés 12 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 8 mars 2005
6 mars 2005 à 23:39
ya plus simple ! avec le keyAscii ?! no ?
cs_derick Messages postés 41 Date d'inscription mardi 20 mai 2003 Statut Membre Dernière intervention 25 août 2007
21 déc. 2004 à 10:50
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.
cs_derick Messages postés 41 Date d'inscription mardi 20 mai 2003 Statut Membre Dernière intervention 25 août 2007
21 déc. 2004 à 10:46
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 ?
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
20 déc. 2004 à 09:25
on pourrais ajouter les codes ASCII 22 à 24 qui, de mémoire autorisent Ctrl X / V / C
tmcuh Messages postés 458 Date d'inscription dimanche 22 décembre 2002 Statut Membre Dernière intervention 18 avril 2009
19 déc. 2004 à 11:56
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
cs_derick Messages postés 41 Date d'inscription mardi 20 mai 2003 Statut Membre Dernière intervention 25 août 2007
19 déc. 2004 à 10:13
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
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
25 août 2004 à 11:30
Tu as toujours la propriété MaxLength....

au pire, un SendMessage avec EM_SETLIMITTEXT...
juvamine Messages postés 468 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 30 août 2007 2
25 août 2004 à 11:15
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
tmcuh Messages postés 458 Date d'inscription dimanche 22 décembre 2002 Statut Membre Dernière intervention 18 avril 2009
4 août 2004 à 18:44
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
juvamine Messages postés 468 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 30 août 2007 2
4 août 2004 à 11:41
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
Rejoignez-nous