TEXTBOX NUMERIQUE

Messages postés
471
Date d'inscription
vendredi 21 février 2003
Statut
Membre
Dernière intervention
30 août 2007
- - Dernière réponse : 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

Afficher la suite 
cs_dragon
Messages postés
2336
Date d'inscription
samedi 14 juillet 2001
Statut
Membre
Dernière intervention
5 mai 2009
3 -
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
17283
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
56 -
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
-
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
17283
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
56 -
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
-
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
-
Alors la c'est du n'importe quoi ! essaie ta source Renfield !
Renfield
Messages postés
17283
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
56 -
...

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
-
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
-
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
-
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
-
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
-
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
17283
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
56 -
on pourrais ajouter les codes ASCII 22 à 24 qui, de mémoire autorisent Ctrl X / V / C
tmcuh
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
cs_derick
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
Renfield
Messages postés
17283
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
56 -
Tu as toujours la propriété MaxLength....

au pire, un SendMessage avec EM_SETLIMITTEXT...
juvamine
Messages postés
471
Date d'inscription
vendredi 21 février 2003
Statut
Membre
Dernière intervention
30 août 2007
3 -
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
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
juvamine
Messages postés
471
Date d'inscription
vendredi 21 février 2003
Statut
Membre
Dernière intervention
30 août 2007
3 -
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