2015-08-20 7 views
0

У меня есть приложение WinForm, в котором я хочу использовать кнопку escape, чтобы закрыть элемент управления. Я создал событие на KeyPress, и это работает, когда я использую любой другой ключ, чем Escape.KeyEventArgs не отвечает на нажатие кнопки escape

private void ProductsView_KeyPress(object sender, KeyPressEventArgs e) 
{ 
    if (e.KeyChar == (char) Keys.B || e.KeyChar == (char)Keys.Escape) 
    { 
     //Magic happens 
    } 
} 

Если я нажимаю «б» все работает, как ожидалось, но если я нажимаю «побег», это событие не уволили (да, моя кнопка побег работы). У меня нет понятия, что может вызвать эту проблему, и я также попробовал KeyUp & События KeyDown.

+0

Используйте '' KeyDown' или KeyUp' вместо этого. –

ответ

0

Вы можете созданы вложенное управление и метод коррекции ProcessCmdKey:

protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg, System.Windows.Forms.Keys keyData) 
    { 
     switch (keyData) 
     { 
      case System.Windows.Forms.Keys.Escape: 
      { 
       //...magic 
      } 
     } 
    } 
+0

Спасибо за быстрый ответ! Это решило мою проблему, вы спасатель жизни! ;) – methgaard

+0

@methgaard Я рад прочитать это :) Можете ли вы принять мой ответ? – Backs

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

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