Bonjour à tous,
je viens ici vous présenter mon pb. De ce que je sais on peut le résoudre en utilisant la librairie win32 mais je souhaiterais éviter de descendre si bas.
Mon pb est le suivant : j'ai fais un userControl qui est donc un composant graphique. Celui-ci capture les événements clavier dès qu'on a le focus sur l'application mère (et pas seulement sur le composant). Ça marche bien.
Par contre si on met la propriété Visible du composant à false, les événements ne sont plus capturés.
Voici le bout de code qui me permet de capturer mes événements dans le load du composant :
Ce qui se passe c'est que quand le composant est invisible (this ici), le load n'étant plus exécuté, il faut que je puisse m'abonner dans le constructeur du composant or la parentform est alors nulle ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 if (this.ParentForm != null) { this.ParentForm.KeyPreview = true; this.ParentForm.KeyDown += new KeyEventHandler(UI_KeyDown); this.ParentForm.KeyUp += new KeyEventHandler(Parent_KeyUp); }
Partager