Interruption clavier?

Résolu
naelgwe Messages postés 11 Date d'inscription lundi 13 novembre 2006 Statut Membre Dernière intervention 16 février 2011 - 7 mai 2007 à 10:47
naelgwe Messages postés 11 Date d'inscription lundi 13 novembre 2006 Statut Membre Dernière intervention 16 février 2011 - 7 mai 2007 à 15:42
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

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
7 mai 2007 à 11:10
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 #
3
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
7 mai 2007 à 15:02
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
3
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
7 mai 2007 à 15:04
Pardon Or à la place de And
3
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
7 mai 2007 à 10:50
As-tu rechercher dans le forum ou les sources ?

Ce genre de question revient au moins une fois par semaine.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
naelgwe Messages postés 11 Date d'inscription lundi 13 novembre 2006 Statut Membre Dernière intervention 16 février 2011
7 mai 2007 à 14:46
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?"
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
7 mai 2007 à 14:54
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 #
0
naelgwe Messages postés 11 Date d'inscription lundi 13 novembre 2006 Statut Membre Dernière intervention 16 février 2011
7 mai 2007 à 15:07
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
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
7 mai 2007 à 15:26
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
0
chaibat05 Messages postés 1883 Date d'inscription samedi 1 avril 2006 Statut Membre Dernière intervention 20 novembre 2007 2
7 mai 2007 à 15:33
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
0
naelgwe Messages postés 11 Date d'inscription lundi 13 novembre 2006 Statut Membre Dernière intervention 16 février 2011
7 mai 2007 à 15:42
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...
0
Rejoignez-nous