Je ne parviens pas à capturer Ctrl +PageUp combinaison de touches dans un contrôle ListView en application WinForms.C# capture Ctrl + Page touche
J'utilise ce code pour capturer les frappes -
private void ListViewEx_KeyDown(object sender, KeyEventArgs e)
{
...
if(e.Control){
if((e.KeyCode^Keys.Left) == 0)
MessageBox.Show("Left"); //shows messagebox
else if((e.KeyCode^Keys.PageUp) == 0)
MessageBox.Show("PageUp"); //does not
...
}
Dois-je plonger dans WndProc pour traiter cette clé? Merci.
Edit: J'ai trouvé que cela fonctionne, le problème était en enfermant TabControl la manipulation de ces clés avant ListControl a pour eux.
En fait, après un examen plus approfondi, votre code fonctionne quand je le teste. Y at-il quelque chose qui se passe dans le code que vous avez omis avant le bloc if qui peut interférer d'une certaine façon? –
non, cela ne fonctionne pas - J'ai un contrôle ListView dérivé, et chaque combinaison de touches fonctionne à l'exception de Ctrl + PageUp ou Ctrl + PageDown. Ces deux continuent à concentrer un autre contrôle dans le formulaire. – Axarydax
Ok, je viens de faire une application de test où tout cela fonctionne, et quand je loue plus loin pour reproduire le problème et ajouté TabControl, j'ai découvert que c'était TabControl qui mangeait mes clés. – Axarydax