Interruption clavier?

Résolu
Signaler
Messages postés
11
Date d'inscription
lundi 13 novembre 2006
Statut
Membre
Dernière intervention
16 février 2011
-
Messages postés
11
Date d'inscription
lundi 13 novembre 2006
Statut
Membre
Dernière intervention
16 février 2011
-
Bonjour à tous ;)

je viens de finir le programme que j'avais besoin pour mes travaux.
Toutefois, je bloque a un endroit précis pour parfaire mon programme.

1) comment autoriser uniquement des chiffres dans une textbox?
2) si je tape un "." dans cet texbox, je voudrais que ca réagisse comme la touche "TAB"

S'il y a une solution simple, je vous remercie d'avance pour vos réponses...
S'il faut rajouter des lignes et des lignes de codes, alors, mon prog se passera de ce 'gadjet" :p

10 réponses

Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
et je me trompe peut-etre, mais je pense que depuis le temps, il doit y avoir un snippet sur Codyx.org

"...S'il faut rajouter des lignes et des lignes de codes, ..." heu, oui quand même, en gros une dizaine ou une quinzaine par textbox

Tout juste pour le snippet, même si pour la version VB6, perso je n'aurais pas fait comme ça, mais ça doit marcher
http://www.codyx.org/snippet_autoriser-saisie-chiffres-dans-champ-texte_119.aspx

Il te restera à rajouter la gestion du point, dans la même procédure

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
Bonjour,


Private Sub ip_KeyPress(Index As Integer, KeyAscii As Integer)
 'gérer le "."
If KeyAscii=46 Then
    Beep
    KeyAscii=0
    SendKeys "{tab}" 'envoyer la touche tab à la place
 'autrement n' accepter que les numériques
ElseIf (KeyAscii<48)  And (KeyAscii>57) Then
    Beep
    KeyAscii = 0
End If
End Sub
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
Pardon Or à la place de And
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
133
As-tu rechercher dans le forum ou les sources ?

Ce genre de question revient au moins une fois par semaine.
Messages postés
11
Date d'inscription
lundi 13 novembre 2006
Statut
Membre
Dernière intervention
16 février 2011

merci casy, le liens m'a permis de me dépatouiller pour l'utilisation uniquement de chiffre.

Private Sub ip_KeyPress(Index As Integer, KeyAscii As Integer)
Dim chaine
chaine = "0123456789 "If InStr(1, chaine, Chr(KeyAscii)) 0 And Not KeyAscii 8 Then
    Beep
    KeyAscii = 0
End If
End Sub

ca fonctionne parfaitement :)
Il me reste a soultionner la touche Tab qui n'est en fait pas un caractère Ascii grrrr
La question aurait put etre posé différemment. "Quel est la commande qui permet de passer au focus suivant?"
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
si, si la touche Tab correspond à un caractère ayant pour code ascii 9.

Ceci dit au niveau de l'interface, normalement la touche Tab est effectivement filtrée par le système pour changer de controle actif. Donc ton controle ne reçois pas cette touche.

Si je comprend bien, tu voulais intercepter le point pour simuler la touche Tab et ainsi changer de controle actif.

Dans ce cas il te faut donner le focus manuellement au controle à activer -> <controle_à_activer>.GotFocus

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Messages postés
11
Date d'inscription
lundi 13 novembre 2006
Statut
Membre
Dernière intervention
16 février 2011

J'utilise 6 TextBox
ex(1), ex(2), ex(3), ex(4) ect....

le focus est dans ex(1), il suffit alors d'indiquer manuellement lorsque j'appuie sur le "." , que je veux aller en ex(2).
Alors la question est comment savoir dans quel ex(x) je me trouve pour que je puisse indiquer manuellement le focus suivant?
Réponse ou pas, merci déja d'avoir pris connaissance et répondu à une de mes questions
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
En configurant la propriété TabIndex !


Ex(1).TabIndex=n
Ex(2).TabIndex=n+1
Ex(3).TabIndex=n+2
...
etc...
n étant le tabindex du premier


Pour le point, le KeyAscii est 110
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
autrement l' index du ex courant est dans
KeyPress(Index As Integer, KeyAscii As Integer)
Mais si tes TabIndex se suivent tu n' as pas à s' en soucier
Messages postés
11
Date d'inscription
lundi 13 novembre 2006
Statut
Membre
Dernière intervention
16 février 2011

Un grand merci a vous 2
Mon prob est 100% résolu.
Quand à chaibat05 tu as résolu les 2 probs en 4 lignes parfaitement claire pour un débutant comme moi.
Du grand Art!

Merci encore.

pour répondre a DARKSIDIOUS, je comprend parfaitement ton agacement pour une question qui doit etre souvent posé.... J'ai fouillé google, les forums ect... mais je n'ai trouvé que des réponses partielles, des pistes et surtout, des lignes a n'en plus finir et relativement complexe a comprendre pour un débutant comme moi.. Je ne me contente pas d'un copié/collé. je veux comprendre aussi... et là les réponses obtenus était à la hauteur de mes attentes...