Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

KeyDown Perte de Focus

2 réponses
Avatar
Jean-Noël
Bonjour,

Sur un formulaire Form, j'ai 3 Buttons.
J'instancie une de mes classes qui fournit un objet
System.Windows.Forms.Control.
J'ajoute ce Control(MyControl) à ma Form.Controls
Quand je clique dessus, je lui donne le Focus: MyControl.Focus ou Select
MyControl intercepte bien les évènements KeyPress.

Si j'utilise une flèche de direction Key.Left par exemple, le Focus est
passé aux buttons de Form et MyControl ne peut pas traiter l'évènemenent.
Ma Form est KeyPreview = False pourtant.

Si j'utilise la combinaison CTRL + Key.Left alors c'est bien MyControl qui
intercepte l'évènement.
Je voudrais simplement ne pas avoir à combiner la touche CTRL pour que les
flèches de direction soient interceptées.

Quelqu'un voit-il la solution ?

Merci.
Débutant en Dotnet

2 réponses

Avatar
Gilles TOURREAU
Le Tue, 27 Nov 2007 15:57:36 +0100, Jean-Noël
a écrit:

Bonjour,

Sur un formulaire Form, j'ai 3 Buttons.
J'instancie une de mes classes qui fournit un objet
System.Windows.Forms.Control.
J'ajoute ce Control(MyControl) à ma Form.Controls
Quand je clique dessus, je lui donne le Focus: MyControl.Focus ou Select
MyControl intercepte bien les évènements KeyPress.

Si j'utilise une flèche de direction Key.Left par exemple, le Focus est
passé aux buttons de Form et MyControl ne peut pas traiter l'évènemenent.
Ma Form est KeyPreview = False pourtant.

Si j'utilise la combinaison CTRL + Key.Left alors c'est bien MyControl
qui
intercepte l'évènement.
Je voudrais simplement ne pas avoir à combiner la touche CTRL pour que
les
flèches de direction soient interceptées.

Quelqu'un voit-il la solution ?

Merci.
Débutant en Dotnet





Définissez Form.KeyPreview = False

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Avatar
Jean-Noël
Merci, mais ce n'est pas cela.
J'avais déjà le Form.KeyPreview = False.
Je reformule mon cas dans une nouvelle question avec exemple de code.

"Gilles TOURREAU" a écrit dans le message de news:

Le Tue, 27 Nov 2007 15:57:36 +0100, Jean-Noël
a écrit:

Bonjour,

Sur un formulaire Form, j'ai 3 Buttons.
J'instancie une de mes classes qui fournit un objet
System.Windows.Forms.Control.
J'ajoute ce Control(MyControl) à ma Form.Controls
Quand je clique dessus, je lui donne le Focus: MyControl.Focus ou Select
MyControl intercepte bien les évènements KeyPress.

Si j'utilise une flèche de direction Key.Left par exemple, le Focus est
passé aux buttons de Form et MyControl ne peut pas traiter l'évènemenent.
Ma Form est KeyPreview = False pourtant.

Si j'utilise la combinaison CTRL + Key.Left alors c'est bien MyControl
qui
intercepte l'évènement.
Je voudrais simplement ne pas avoir à combiner la touche CTRL pour que
les
flèches de direction soient interceptées.

Quelqu'un voit-il la solution ?

Merci.
Débutant en Dotnet





Définissez Form.KeyPreview = False

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr