Question

Je ne parviens pas à capturer Ctrl + PageUp combinaison de touches dans un contrôle ListView en application WinForms.

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
...
}

Ai-je besoin de 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 de les ListControl a

.
Était-ce utile?

La solution

Pas besoin de WndProc:

if ((e.Modifiers & ModifierKeys) == Keys.Control && e.KeyCode == Keys.PageUp)
{
    // ctrl + page up was pressed
}

Autres conseils

L'argument e.KeyData comprend les touches de modification. Elle doit ressembler à ceci:

  if (e.KeyData == (Keys.Control | Keys.PageDown)) {
    // Do your stuff
    Console.WriteLine("Ctrl+PgDn");
  }

vérifier

Keys.Control | Keys.PageUp
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top