Validation des controles et navigation dans le form
1 réponse
Ear Plugs
Bonjour le ng,
Dans un windows-form avec des contol box simples et un bouton.
n'y a t il pas un moyen pour que la touche [Entrée] se comporte par défaut
comme [Tab] autrement qu'en trappant l'aperçu des touches sur le formulaire
?
L'idéal étant de parcourir les éléments avec la même touche jusqu'à finir
avec le bouton de validation global.
Question de super débutant, merci de ne pas se moquer.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
OD
> Dans un windows-form avec des contol box simples et un bouton. n'y a t il pas un moyen pour que la touche [Entrée] se comporte par défaut comme [Tab] autrement qu'en trappant l'aperçu des touches sur le formulaire ?
Le problème c'est que Windows répond à un cahier des charges ergonomique précis, on l'aime ou pas n'est pas la question bien entendu, mais c'est comme ça. Le passage d'un champ à un autre c'est Tab et shift-Tab, Enter valide, c'est son sens (unique. sans jeu de mot :-) ). Vouloir détourner les fondements ergonomiques de windows pose toujours des petits problèmes de logique ici ou là à un moment donné, de plus rien n'est fait pour faciliter ces changements, ce qui est normal et logique. Donc pour répondre à ta question, le plus simple c'est de connecter le keypressed ou le keydown de tous tes textbox à un gestionnaire d'événement central qui agira comme Tab. par exemple (mais il existe plein de façons de le faire) : if (e.KeyCode == Keys.Enter) SendKeys.Send("{TAB}");
Attention toutefois à ce que je disais plus haut, à savoir que lorsqu'on touche à la logique ergonomique de Windows ça finit rapidement par poser des pb. Exemple tout simple : si tu as un textbox en mode multiligne...et oui, plus de multiligne car au premier Enter ça passera au controle suivant. Deux solutions : ne pas gérer le Enter/tab sur ce controle là, mais du coup c'est ton ergonomie à toi qui devient bancale vis à vis de l'utilisateur... ou bien gérer une astuce du type ctrl-enter qui ne fait pas un tab mais un enter. ça se complique pour l'utilisateur !
Amuse toi bien (et pense toujours à l'utilisateur !)
--
Olivi3r_____
Dot.Blog - C# LINQ VS ... www.e-naxos.com/blog
> Dans un windows-form avec des contol box simples et un bouton.
n'y a t il pas un moyen pour que la touche [Entrée] se comporte par défaut
comme [Tab] autrement qu'en trappant l'aperçu des touches sur le formulaire
?
Le problème c'est que Windows répond à un cahier des charges
ergonomique précis, on l'aime ou pas n'est pas la question bien
entendu, mais c'est comme ça. Le passage d'un champ à un autre c'est
Tab et shift-Tab, Enter valide, c'est son sens (unique. sans jeu de mot
:-) ).
Vouloir détourner les fondements ergonomiques de windows pose toujours
des petits problèmes de logique ici ou là à un moment donné, de plus
rien n'est fait pour faciliter ces changements, ce qui est normal et
logique.
Donc pour répondre à ta question, le plus simple c'est de connecter le
keypressed ou le keydown de tous tes textbox à un gestionnaire
d'événement central qui agira comme Tab.
par exemple (mais il existe plein de façons de le faire) :
if (e.KeyCode == Keys.Enter) SendKeys.Send("{TAB}");
Attention toutefois à ce que je disais plus haut, à savoir que
lorsqu'on touche à la logique ergonomique de Windows ça finit
rapidement par poser des pb. Exemple tout simple : si tu as un textbox
en mode multiligne...et oui, plus de multiligne car au premier Enter ça
passera au controle suivant. Deux solutions : ne pas gérer le Enter/tab
sur ce controle là, mais du coup c'est ton ergonomie à toi qui devient
bancale vis à vis de l'utilisateur... ou bien gérer une astuce du type
ctrl-enter qui ne fait pas un tab mais un enter. ça se complique pour
l'utilisateur !
Amuse toi bien (et pense toujours à l'utilisateur !)
> Dans un windows-form avec des contol box simples et un bouton. n'y a t il pas un moyen pour que la touche [Entrée] se comporte par défaut comme [Tab] autrement qu'en trappant l'aperçu des touches sur le formulaire ?
Le problème c'est que Windows répond à un cahier des charges ergonomique précis, on l'aime ou pas n'est pas la question bien entendu, mais c'est comme ça. Le passage d'un champ à un autre c'est Tab et shift-Tab, Enter valide, c'est son sens (unique. sans jeu de mot :-) ). Vouloir détourner les fondements ergonomiques de windows pose toujours des petits problèmes de logique ici ou là à un moment donné, de plus rien n'est fait pour faciliter ces changements, ce qui est normal et logique. Donc pour répondre à ta question, le plus simple c'est de connecter le keypressed ou le keydown de tous tes textbox à un gestionnaire d'événement central qui agira comme Tab. par exemple (mais il existe plein de façons de le faire) : if (e.KeyCode == Keys.Enter) SendKeys.Send("{TAB}");
Attention toutefois à ce que je disais plus haut, à savoir que lorsqu'on touche à la logique ergonomique de Windows ça finit rapidement par poser des pb. Exemple tout simple : si tu as un textbox en mode multiligne...et oui, plus de multiligne car au premier Enter ça passera au controle suivant. Deux solutions : ne pas gérer le Enter/tab sur ce controle là, mais du coup c'est ton ergonomie à toi qui devient bancale vis à vis de l'utilisateur... ou bien gérer une astuce du type ctrl-enter qui ne fait pas un tab mais un enter. ça se complique pour l'utilisateur !
Amuse toi bien (et pense toujours à l'utilisateur !)