2016-09-20 6 views
-1

У меня есть flowlayoutPanel с динамическим добавлением около 50 userControl.Пытается использовать событие KeyDown в форме, чтобы поймать навигацию arrowUp и arrowDown

Я использую this.KeyPreview = true в форме, чтобы уловить событие в форме. Как теперь я использую этот EventHandler:

private void Form1_KeyDown(object sender, KeyEventArgs e) 
{  
} 

для KeyDown, чтобы быть в состоянии поймать пробел, символ + и ключ Pageup навигации и PageDown. Это работает хорошо.

Мне также нужно поймать навигацию arrowUp и arrowDown, но единственным рабочим решением для меня является использование обработчика событий для KeyUp следующим образом. Когда я использую событие Event1_KeyUp обработчика событий, я могу использовать стрелку клавиш навигации и arroeDown.

private void Form1_KeyUp(object sender, KeyEventArgs e) 
{   
} 

Я пытался использовать этот обработчик событий

private void Form1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e) 
{  
} 

, но это никогда не вызывается, когда я нажимаю навигации ArrowUp и СТРЕЛКА ВНИЗ.

Я надеюсь, чтобы иметь возможность поймать все такие как (PageUp, PageDown, пробел, символ + ArrowUp и СТРЕЛКА ВНИЗ) в обработчик событий для KeyDown

Любая помощь приветствуется.

+0

Когда я использую ключ Pageup навигации, PageDown, ArrowUp и ArrowUp У меня есть UserControl в пределах FlowLayoutPanel как acive contrfol. – tony

ответ

0

Это проще просто переопределить функцию ProcessCmdKey:

protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { 
    if (keyData == Keys.Up) { 
    // do something here 
    return true; 
    } else { 
    return base.ProcessCmdKey(ref msg, keyData); 
    } 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^