KeyDown Perte de Focus

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Gilles TOURREAU
Le #12226871
Le Tue, 27 Nov 2007 15:57:36 +0100, 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





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
Jean-Noël
Le #12226741
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"
Le Tue, 27 Nov 2007 15:57:36 +0100, 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





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


Publicité
Poster une réponse
Anonyme