OVH Cloud OVH Cloud

Clé ENTER

4 réponses
Avatar
d.p
Bonjour,

Comment faire sur un form pour quitter un contrôle et passer au suivant en
appuyant sur la touche <ENTER>.

Ex: textbox1--->ENTER--->textbox2.

Merci

4 réponses

Avatar
ng
Salut,
2 textboxes (Text1 et Text2) sur la form avec un TabIndex qui se suit,
mettre ce code :

Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then KeyAscii = 0: Call SendKeys("{TAB}", True)
End Sub

S'il y a plus de textboxes, on peut imaginer un groupe de contrôle :
Créer un textbox nommé MonText, mettre sa propriété Index à 0 puis le
copier coller autant de fois que voulu, il suffit alors d'ajouter ce code :

Private Sub MonText_KeyPress(Index As Integer, KeyAscii As Integer)
If KeyAscii = 13 Then KeyAscii = 0: Call SendKeys("{TAB}", True)
End Sub


Nicolas.
--
http://www.ngsoft-fr.com
"d.p" a écrit dans le message de news:
y9WJb.18387$
Bonjour,

Comment faire sur un form pour quitter un contrôle et passer au suivant en
appuyant sur la touche <ENTER>.

Ex: textbox1--->ENTER--->textbox2.

Merci




Avatar
François Picalausa
Bonjour/soir,

L'article suivant indique quelquechose d'intéressant:
http://support.microsoft.com/?id2816

"However, using the ENTER key to move the focus does not follow recommended
Microsoft Windows-based application design guidelines. The ENTER key should
be used to process the default command or to process entered information,
not to move the focus."

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com

"ng" a écrit dans le message de
news:
2 textboxes (Text1 et Text2) sur la form avec un TabIndex qui se suit,
mettre ce code :

Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then KeyAscii = 0: Call SendKeys("{TAB}", True)
End Sub



"d.p" a écrit dans le message de news:
y9WJb.18387$
> Comment faire sur un form pour quitter un contrôle et passer au suivant


en
> appuyant sur la touche <ENTER>.
>
> Ex: textbox1--->ENTER--->textbox2.
>


Avatar
ng
Petite rectification, pour le groupe de controle, ce code est plus
interessant car il utilise les index et non sendkeys :

Private Sub MonText_KeyPress(Index As Integer, KeyAscii As Integer)
If KeyAscii = 13 Then
KeyAscii = 0
If Index < MonText.Count - 1 Then MonText(Index + 1).SetFocus Else
MonText(0).SetFocus
End If
End Sub


Nicolas.
--
http://www.ngsoft-fr.com
"ng" a écrit dans le message de news:

Salut,
2 textboxes (Text1 et Text2) sur la form avec un TabIndex qui se suit,
mettre ce code :

Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then KeyAscii = 0: Call SendKeys("{TAB}", True)
End Sub

S'il y a plus de textboxes, on peut imaginer un groupe de contrôle :
Créer un textbox nommé MonText, mettre sa propriété Index à 0 puis le
copier coller autant de fois que voulu, il suffit alors d'ajouter ce code


:

Private Sub MonText_KeyPress(Index As Integer, KeyAscii As Integer)
If KeyAscii = 13 Then KeyAscii = 0: Call SendKeys("{TAB}", True)
End Sub


Nicolas.
--
http://www.ngsoft-fr.com
"d.p" a écrit dans le message de news:
y9WJb.18387$
> Bonjour,
>
> Comment faire sur un form pour quitter un contrôle et passer au suivant


en
> appuyant sur la touche <ENTER>.
>
> Ex: textbox1--->ENTER--->textbox2.
>
> Merci
>
>




Avatar
Pierre Alexis [MVP]
Salut François,

Tu as écrit :

L'article suivant indique quelquechose d'intéressant:
http://support.microsoft.com/?id2816

"However, using the ENTER key to move the focus does not follow recommended
Microsoft Windows-based application design guidelines. The ENTER key should
be used to process the default command or to process entered information,
not to move the focus."



Oué et moi je l'avais dit en français dans un post précédent :

"Alors moi je ne conseille pas de solution du tout !! Le nouveau standard de
Windows veut que pour passer d'un champ à un autre on emploie la touche "Tab",
la touche "Enter" servant, elle, à valider un formulaire (quand on appuye sur
enter, c'est comme si on appuyait sur le bouton "OK", "Enregistrer", ... du
formulaire").
Et il ne faut surtout pas commencer à changer ce comportement "by design" de
Windows. Sinon bonjour les cafouillages, les bugs, sans compter les
utilisateurs désorientés."

Programmeurs : apprenez à respecter les standards !!!!! Après on s'étonne que
l'appli ne marche pas bien, qu'elle ne marche plus avec les versions suivantes
de Windows, que les utilisateurs râlent, etc.... Quand Microsoft énonce une
règle, un standard, c'est pas fait pour les chiens.

Vous pouvez ne pas être d'accord avec la politique du "Tab/Enter" de
Microsoft, mais ce n'est pas à vous de changer ça dans votre petit programme.
Le seul truc que vous pouvez faire c'est vous plaindre auprès de Microsoft.
(même si ça sert à rien).

--
Pierre ALEXIS - MVP Visual Basic
Courriel & messenger :
FAQ Visual Basic : http://faq.vb.free.fr/